Ben Kurtovic 2d8872dbcd | 11 years ago | |
---|---|---|
.gitignore | 13 years ago | |
LICENSE | 11 years ago | |
README.md | 11 years ago | |
gitup.py | 11 years ago | |
setup.py | 11 years ago |
gitup (the git-repo-updater)
gitup is a tool designed to pull to a large number of git repositories at once. It is smart enough to ignore repos with dirty working directories, and provides a (hopefully) great way to get everything up-to-date for those short periods of internet access between long periods of none.
gitup should work on OS X, Linux, and Windows. You should have the latest version of git and at least Python 2.7 installed.
First:
git clone git://github.com/earwig/git-repo-updater.git
cd git-repo-updater
Then, to install for everyone:
sudo python setup.py install
...or for just yourself (make sure you have ~/.local/bin
in your PATH):
python setup.py install --user
Finally, simply delete the git-repo-updater
directory, and you’re done!
Note: If you are using Windows, you may wish to add a macro so you can
invoke gitup in any directory. Note that C:\python27\
refers to the
directory where Python is installed:
DOSKEY gitup=c:\python27\python.exe c:\python27\Scripts\gitup $*
There are two ways to update repos: you can pass them as command arguments, or save them as “bookmarks”.
For example:
gitup ~/repos/foo ~/repos/bar ~/repos/baz
...will automatically pull to the foo
, bar
, and baz
git repositories if
their working directories are clean (to avoid merge conflicts). Additionally,
you can just type:
gitup ~/repos
...to automatically update all git repositories in that directory.
To add a bookmark (or bookmarks), either of these will work:
gitup --add ~/repos/foo ~/repos/bar ~/repos/baz
gitup --add ~/repos
Then, to update (pull to) all of your bookmarks, just run gitup without args:
gitup
Deleting a bookmark is as easy as adding one:
gitup --delete ~/repos
Want to view your current bookmarks? Simple:
gitup --list
You can mix and match bookmarks and command arguments:
gitup --add ~/repos/foo ~/repos/bar
gitup ~/repos/baz # update 'baz' only
gitup # update 'foo' and 'bar' only
gitup ~/repos/baz --update # update all three!
Want to update all git repositories in your current directory?
gitup .
For a list of all command arguments and abbreviations:
gitup --help
Finally, all paths can be either absolute (e.g. /path/to/repo) or relative (e.g. ../my/repo).