@@ -1,8 +1,8 @@ | |||
__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 projects with dirty working directories, and | |||
provides a great way to get everything up-to-date for those short periods of | |||
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 works on both OS X and Linux. You should have the latest version of git | |||
@@ -27,25 +27,25 @@ Finally, simply delete the `git-repo-updater` directory, and you're done! | |||
# Usage | |||
There are two ways to update projects: you can pass them as command arguments, | |||
There are two ways to update repos: you can pass them as command arguments, | |||
or save them as "bookmarks". | |||
For example: | |||
gitup ~/projects/foo ~/projects/bar ~/projects/baz | |||
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 ~/projects | |||
gitup ~/repos | |||
...to automatically update all git repositories in that directory. | |||
To add a bookmark (or bookmarks), either of these will work: | |||
gitup --add ~/projects/foo ~/projects/bar ~/projects/baz | |||
gitup --add ~/projects | |||
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: | |||
@@ -53,7 +53,7 @@ Then, to update (pull to) all of your bookmarks, just run gitup without args: | |||
Deleting a bookmark is as easy as adding one: | |||
gitup --delete ~/projects | |||
gitup --delete ~/repos | |||
Want to view your current bookmarks? Simple: | |||
@@ -61,12 +61,12 @@ Want to view your current bookmarks? Simple: | |||
You can mix and match bookmarks and command arguments: | |||
gitup --add ~/projects/foo ~/projects/bar | |||
gitup ~/projects/baz # update 'baz' only | |||
gitup # update 'foo' and 'bar' only | |||
gitup ~/projects/baz --update # update all three! | |||
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 projects in your current directory? | |||
Want to update all git repositories in your current directory? | |||
gitup . | |||
@@ -74,5 +74,5 @@ For a list of all command arguments and abbreviations: | |||
gitup --help | |||
Finally, all paths can be either absolute (e.g. /path/to/project) or relative | |||
(e.g. ../my/project). | |||
Finally, all paths can be either absolute (e.g. /path/to/repo) or relative | |||
(e.g. ../my/repo). |
@@ -63,11 +63,11 @@ def get_tail_name(path): | |||
return os.path.split(path)[1] | |||
def update_repository(repo_path, repo_name): | |||
"""Update a single git project by pulling from the remote repository.""" | |||
"""Update a single git repository by pulling from the remote.""" | |||
out(1, "{}{}{}:".format(ansi['bold'], repo_name, ansi['reset'])) | |||
os.chdir(repo_path) # cd into the project folder so git commands target the | |||
# correct repo | |||
os.chdir(repo_path) # cd into our folder so git commands target the correct | |||
# repo | |||
try: | |||
dry_fetch = exec_shell("git fetch --dry-run") # check if there is | |||
@@ -101,13 +101,13 @@ def update_repository(repo_path, repo_name): | |||
else: | |||
out(2, """{}Warning:{} You have uncommitted changes in this | |||
project!""".format(ansi['red'], ansi['reset'])) | |||
repository!""".format(ansi['red'], ansi['reset'])) | |||
out(2, "Ignoring.") | |||
def update_directory(dir_path, dir_name, is_bookmark=False): | |||
"""First, make sure the specified object is actually a directory, then | |||
determine whether the directory is a git project on its own or a directory | |||
of git projects. If the former, update the single repository; if the | |||
determine whether the directory is a git repo on its own or a directory | |||
of git repositories. If the former, update the single repository; if the | |||
latter, update all repositories contained within.""" | |||
if is_bookmark: | |||
dir_source = "Bookmark" # where did we get this directory from? | |||
@@ -247,19 +247,18 @@ def list_bookmarks(): | |||
def main(): | |||
"""Parse arguments and then call the appropriate function(s).""" | |||
parser = argparse.ArgumentParser(description="""Easily and intelligently | |||
pull to multiple git projects at once.""", epilog="""Both relative | |||
and absolute paths are accepted by all arguments. Questions? | |||
Comments? Email the author at {}.""".format(__email__), | |||
add_help=False) | |||
parser = argparse.ArgumentParser(description="""Easily pull to multiple git | |||
repositories at once.""", epilog="""Both relative and absolute | |||
paths are accepted by all arguments. Questions? Comments? Email the | |||
author at {}.""".format(__email__), add_help=False) | |||
group_u = parser.add_argument_group("updating repositories") | |||
group_b = parser.add_argument_group("bookmarking") | |||
group_m = parser.add_argument_group("miscellaneous") | |||
group_u.add_argument('directories_to_update', nargs="*", metavar="path", | |||
help="""update all projects in this directory (or the directory | |||
itself, if it is a project)""") | |||
help="""update all repositories in this directory (or the directory | |||
itself, if it is a repo)""") | |||
group_u.add_argument('-u', '--update', action="store_true", help="""update | |||
all bookmarks (default behavior when called without arguments)""") | |||
@@ -12,7 +12,7 @@ if os.path.exists("gitup"): | |||
else: | |||
os.rename("gitup.py", "gitup") | |||
desc = "Easily and intelligently pull to multiple git projects at once." | |||
desc = "Easily pull to multiple git repositories at once." | |||
with open('README.md') as file: | |||
long_desc = file.read() | |||
@@ -27,7 +27,7 @@ try: | |||
description = desc, | |||
long_description = long_desc, | |||
license = "MIT License", | |||
keywords = "git project repository pull update", | |||
keywords = "git repository pull update", | |||
url = "http://github.com/earwig/git-repo-updater", | |||
classifiers = ["Environment :: Console", | |||
"Intended Audience :: Developers", | |||