Managing multiple user image repos
+Managing user image repos
+Since we have many multiples of user images in their own repos, managing these can become burdensome… Particularly if you need to make changes to many or all of the images.
+There is a script located in the datahub/scripts/user-image-management/
directory named manage-image-repos.py.
This script uses a config file with a list of all of the git remotes for the image repos (config.txt) and will allow you to perform basic git operations (sync/rebase, clone, branch management and pushing).
+The script “assumes” that you have all of your user images in their own folder (in my case, $HOME/src/images/...
).
Output of --help
for the tool
+Here are the help results from the various sub-commands:
+./manage-image-repos.py --help
+usage: manage-image-repos.py [-h] [-c CONFIG] [-d DESTINATION] {sync,clone,branch,push} ...
+
+positional arguments:
+ {sync,clone,branch,push}
+ sync Sync all image repositories to the latest version.
+ clone Clone all image repositories.
+ branch Create a new feature branch in all image repositories.
+ push Push all image repositories to a remote.
+
+options:
+ -h, --help show this help message and exit
+ -c CONFIG, --config CONFIG
+ Path to file containing list of repositories to clone.
+ -d DESTINATION, --destination DESTINATION
+ Location of the image repositories.
+sync
help:
./manage-image-repos.py sync --help
+usage: manage-image-repos.py sync [-h] [-p] [-o ORIGIN]
+
+options:
+ -h, --help show this help message and exit
+ -p, --push Push synced repo to a remote.
+ -o ORIGIN, --origin ORIGIN
+ Origin to push to. This is optional and defaults to 'origin'.
+clone
help:
./manage-image-repos.py clone --help
+usage: manage-image-repos.py clone [-h] [-s] [-g GITHUB_USER]
+
+options:
+ -h, --help show this help message and exit
+ -s, --set-origin Set the origin of the cloned repository to the user's GitHub.
+ -g GITHUB_USER, --github-user GITHUB_USER
+ GitHub user to set the origin to.
+branch
help:
./manage-image-repos.py branch --help
+usage: manage-image-repos.py branch [-h] [-b BRANCH]
+
+options:
+ -h, --help show this help message and exit
+ -b BRANCH, --branch BRANCH
+ Name of the new feature branch to create.
+push
help:
./manage-image-repos.py push --help
+usage: manage-image-repos.py push [-h] [-o ORIGIN] [-b BRANCH]
+
+options:
+ -h, --help show this help message and exit
+ -o ORIGIN, --origin ORIGIN
+ Origin to push to. This is optional and defaults to 'origin'.
+ -b BRANCH, --branch BRANCH
+ Name of the branch to push.
+Usage examples
+clone all of the image repos:
+./manage-image-repos.py --destination ~/src/images/ --config repos.txt clone
+clone all repos, and set upstream
and origin
:
./manage-image-repos.py --destination ~/src/images/ --config repos.txt clone --set-origin --github-user shaneknapp
+how to sync all image repos from upstream and push to your origin
:
./manage-image-repos.py --destination ~/src/images/ --config repos.txt sync --push
+create a feature branch in all of the image repos:
+./manage-image-repos.py -c repos.txt -d ~/src/images branch -b test-branch
+after you’ve added/committed files, push everything to a remote:
+./manage-image-repos.py -c repos.txt -d ~/src/images push -b test-branch
+
+
+