Giter Club home page Giter Club logo

git-repo-updater's People

Contributors

botmtl avatar earwig avatar m-s- avatar offa avatar pr0d1r2 avatar smittytone avatar theresnotime avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

git-repo-updater's Issues

Error encountered when iterating a large number of repos

I've got a pretty regular practice of updating my entire $GOPATH of repos, of which there are quite a few. Whenever I run gitup across this large of a list, it invariably ends in this error:

  File "/usr/local/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.3.1.dev0', 'console_scripts', 'gitup')()
  File "build/bdist.macosx-10.10-x86_64/egg/gitup/script.py", line 111, in run
  File "build/bdist.macosx-10.10-x86_64/egg/gitup/script.py", line 103, in main
  File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 227, in update_directories
  File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 208, in _update_directory
  File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 192, in _update_subdirectories
  File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 177, in _update_repository
  File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 116, in _update_branch
  File "/usr/local/lib/python2.7/site-packages/git/cmd.py", line 440, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/git/cmd.py", line 834, in _call_process
    return self.execute(make_call(), **_kwargs)
  File "/usr/local/lib/python2.7/site-packages/git/cmd.py", line 587, in execute
    stdout_value, stderr_value = proc.communicate()
  File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 799, in communicate
    return self._communicate(input)
  File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1411, in _communicate
    stdout, stderr = self._communicate_with_select(input)
  File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1512, in _communicate_with_select
    rlist, wlist, xlist = select.select(read_set, write_set, [])
ValueError: filedescriptor out of range in select()

I'm not able to finish updating this directory, so I'm forced to break apart into smaller chunks.

"Silent" option?

Hey!

I wrote my own little custom updater some time ago but came across this project recently and strongly preferred it because it is used by more than 1 person and is open source, etc. Thanks for writing this tool!

I run this in a cron job, and its output is sent as mail to my user every time it runs. I'd love it if there were a "silent" mode such that only failed actions would be output. If the update was performed successfully, there would be no output.

What do you think?

Add Py3k support

Should have this, if people are running it under Python 3 interpreters.

Probably won't be hard to support, but need to check dependencies.

git push?

Hi, does gitup support git push as well?

“PackingType of packed-Refs not understood”

I’m using Gitup 0.4 on macOS 10.12.6. I have a clone of a public repository from GitHub, and when I try to update it I get

/Users/bdesham/Compute/spectomic (1 repo):
    spectomic:
        Fetching origin: error: git.
Traceback (most recent call last):
  File "/usr/local/Cellar/gitup/0.4/libexec/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.4', 'console_scripts', 'gitup')()
  File "/usr/local/Cellar/gitup/0.4/libexec/lib/python2.7/site-packages/gitup/script.py", line 137, in run
    main()
  File "/usr/local/Cellar/gitup/0.4/libexec/lib/python2.7/site-packages/gitup/script.py", line 129, in main
    update_directories(args.directories_to_update, update_args)
  File "/usr/local/Cellar/gitup/0.4/libexec/lib/python2.7/site-packages/gitup/update.py", line 254, in update_directories
    _dispatch(path, _update_repository, *update_args)
  File "/usr/local/Cellar/gitup/0.4/libexec/lib/python2.7/site-packages/gitup/update.py", line 240, in _dispatch
    callback(repo, *args)
  File "/usr/local/Cellar/gitup/0.4/libexec/lib/python2.7/site-packages/gitup/update.py", line 178, in _update_repository
    for branch in sorted(repo.heads, key=lambda b: b.name):
  File "/usr/local/Cellar/gitup/0.4/libexec/vendor/lib/python2.7/site-packages/git/repo/base.py", line 228, in heads
    return Head.list_items(self)
  File "/usr/local/Cellar/gitup/0.4/libexec/vendor/lib/python2.7/site-packages/git/util.py", line 932, in list_items
    out_list.extend(cls.iter_items(repo, *args, **kwargs))
  File "/usr/local/Cellar/gitup/0.4/libexec/vendor/lib/python2.7/site-packages/git/refs/symbolic.py", line 592, in _iter_items
    for sha, rela_path in cls._iter_packed_refs(repo):  # @UnusedVariable
  File "/usr/local/Cellar/gitup/0.4/libexec/vendor/lib/python2.7/site-packages/git/refs/symbolic.py", line 92, in _iter_packed_refs
    raise TypeError("PackingType of packed-Refs not understood: %r" % line)
TypeError: PackingType of packed-Refs not understood: '# pack-refs with: peeled fully-peeled sorted'

Thanks to Homebrew, I have tried this with Git versions 2.14.2, 2.14.3, and 2.15.0, but the behavior is the same in each case. The only problem seems to be this GitHub repo; I can update my clones of some self-hosted GitLab repos and a non-hosted repo without a problem.

Edit: I did get this problem on a GitHub repo but I’ve since seen it on repos on my company’s self-hosted GitLab installation too. Weirdly, some of the repos from GitLab have updated without a problem. I can’t see a pattern in which repositories can update and which can’t.

Doesn't handle bare repos

I have a directory full of bare repos (i.e. mirrors), and getup fails to update them:

Traceback (most recent call last):
File "/usr/local/Cellar/gitup/0.2.3/libexec/bin/gitup", line 9, in
load_entry_point('gitup==0.2.3', 'console_scripts', 'gitup')()
File "/usr/local/Cellar/gitup/0.2.3/libexec/lib/python2.7/site-packages/gitup/script.py", line 90, in run
main()
File "/usr/local/Cellar/gitup/0.2.3/libexec/lib/python2.7/site-packages/gitup/script.py", line 82, in main
update_directories(args.directories_to_update, update_args)
File "/usr/local/Cellar/gitup/0.2.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 296, in update_directories
_update_directory(full_path, update_args, is_bookmark=False)
File "/usr/local/Cellar/gitup/0.2.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 275, in _update_directory
_update_subdirectories(path, long_name, update_args)
File "/usr/local/Cellar/gitup/0.2.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 256, in _update_subdirectories
_update_repository(repo, _update_args)
File "/usr/local/Cellar/gitup/0.2.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 240, in _update_repository
_update_branches(repo, active, merge, rebase)
File "/usr/local/Cellar/gitup/0.2.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 207, in _update_branches
active.checkout()
File "/usr/local/Cellar/gitup/0.2.3/libexec/vendor/lib/python2.7/site-packages/git/refs/head.py", line 219, in checkout
self.repo.git.checkout(self, *_kwargs)
File "/usr/local/Cellar/gitup/0.2.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 440, in
return lambda _args, *_kwargs: self._call_process(name, _args, *_kwargs)
File "/usr/local/Cellar/gitup/0.2.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 834, in _call_process
return self.execute(make_call(), **_kwargs)
File "/usr/local/Cellar/gitup/0.2.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 627, in execute
raise GitCommandError(command, status, stderr_value)
git.exc.GitCommandError: 'git checkout master' returned with exit code 128

Detached HEAD error

When it tries to update a repo which is currently on a detached HEAD:

Traceback (most recent call last):
  File "/Users/km/python/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.2.1', 'console_scripts', 'gitup')()
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/script.py", line 90, in run
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/script.py", line 85, in main
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 275, in update_bookmarks
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 262, in _update_directory
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 243, in _update_subdirectories
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 212, in _update_repository
  File "/Users/km/python/lib/python2.7/site-packages/GitPython-0.3.2.RC1-py2.7.egg/git/repo/base.py", line 551, in active_branch
    return self.head.reference
  File "/Users/km/python/lib/python2.7/site-packages/GitPython-0.3.2.RC1-py2.7.egg/git/refs/symbolic.py", line 244, in _get_reference
    raise TypeError("%s is a detached symbolic reference as it points to %r" % (self, sha))
TypeError: HEAD is a detached symbolic reference as it points to '4f739b507fb688b6e8b04c03d9d4a88863051e68'

Add a command to list repositories which have commits recently

I have a directory which contains all the projects I want to track. It's awesome I just need to issue a command gitup . to update all the repositories.

But most of the time, I want to have a look at which repository has commits recently, so I can look into what is changed.

how about provide a command like

gitup --recent 5 .

which will list repositories which have commits in 5 days.

new release

could you make a new release?
v0.6 or v0.5.1

Gitup doesn't work with path containing colon

Hi,

This tool is great!

I'm currently using ghq to manage remote repositories. One of the repositories I have connects to Gitlab over HTTPs on a non-standard port (i.e., 4545) and thus I have a repository location of /Users/me/dev/src/path.to.server:4545/project/repo.

When adding this repository to gitup, I can verify that .config/gitup/config.ini has the line:

/Users/me/dev/src/path.to.server:4545/project/repo = repo

When Gitup attempts to update this repository, I get:

Error: /Users/me/dev/src/path.to.server doesn't exist!

Apparently the default delimiters that configparser use are both = and :, but can be changed. Can we look into configuring configparser to not use colons as a delimiter?

Thanks!

Error on updating after a certain amount of repo's.

Hello I am getting the following error when I am updating after a while.

It seems to happen after a certain amount of repo's.

Traceback (most recent call last):
  File "/usr/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.4.dev0', 'console_scripts', 'gitup')()
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 137, in run
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 129, in main
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 245, in update_direc                                                                                                                                                             tories
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 226, in _dispatch
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 208, in _dispatch_to                                                                                                                                                             _subdirs
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 178, in _update_repo                                                                                                                                                             sitory
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 107, in _update_bran                                                                                                                                                             ch
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/refs/symb                                                                                                                                                             olic.py", line 183, in _get_commit
    obj = self._get_object()
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/refs/symb                                                                                                                                                             olic.py", line 176, in _get_object
    return Object.new_from_sha(self.repo, hex_to_bin(self.dereference_recursive(                                                                                                                                                             self.repo, self.path)))
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/objects/b                                                                                                                                                             ase.py", line 65, in new_from_sha
    oinfo = repo.odb.info(sha1)
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/db.py", l                                                                                                                                                             ine 40, in info
    hexsha, typename, size = self._git.get_object_header(bin_to_hex(sha))
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/cmd.py",                                                                                                                                                              line 992, in get_object_header
    cmd = self._get_persistent_cmd("cat_file_header", "cat_file", batch_check=Tr                                                                                                                                                             ue)
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/cmd.py",                                                                                                                                                              line 975, in _get_persistent_cmd
    cmd = self._call_process(cmd_name, *args, **options)
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/cmd.py",                                                                                                                                                              line 929, in _call_process
    return self.execute(make_call(), **_kwargs)
  File "/usr/lib/python2.7/site-packages/GitPython-2.0.6-py2.7.egg/git/cmd.py",                                                                                                                                                              line 625, in execute
    raise GitCommandNotFound(str(err))
git.exc.GitCommandNotFound: [Errno 24] Too many open files

Quiet mode - hide repos that are already up to date

I have several hundred repos in my gitup bookmarks, and many of them don't have updates when I run gitup. It would be nice if there were a way to have gitup stifle output for repos that didn't have any updates.

ValueError: Failed to parse line: u' = [\xe0 jour] develop -> origin/develop'

Hi, it's not working for me, I have this error when I try to update all my repo.

Regards
Frédéric

$ gitup ~/workspace/longback                                                                                                                                                                                 ⏎
gitup: the git-repo-updater

Directory "/home/lo/workspace/longback" contains 13 git repositories:
    babylon:
        Fetching originTraceback (most recent call last):
  File "/usr/local/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.2.3', 'console_scripts', 'gitup')()
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 90, in run
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 82, in main
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 296, in update_directories
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 275, in _update_directory
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 256, in _update_subdirectories
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 239, in _update_repository
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 98, in _fetch_remotes
  File "/usr/local/lib/python2.7/dist-packages/GitPython-1.0.1-py2.7.egg/git/remote.py", line 651, in fetch
    res = self._get_fetch_info_from_stderr(proc, progress or RemoteProgress())
  File "/usr/local/lib/python2.7/dist-packages/GitPython-1.0.1-py2.7.egg/git/remote.py", line 588, in _get_fetch_info_from_stderr
    for err_line, fetch_line in zip(fetch_info_lines, fetch_head_info))
  File "/usr/local/lib/python2.7/dist-packages/GitPython-1.0.1-py2.7.egg/git/remote.py", line 588, in <genexpr>
    for err_line, fetch_line in zip(fetch_info_lines, fetch_head_info))
  File "/usr/local/lib/python2.7/dist-packages/GitPython-1.0.1-py2.7.egg/git/remote.py", line 241, in _from_line
    raise ValueError("Failed to parse line: %r" % line)
ValueError: Failed to parse line: u' = [\xe0 jour]          develop    -> origin/develop'

Use GitPython

I've had a relatively good time using GitPython, so it would be nice to switch to that over the current raw-shell-command approach.

Update readme to make it work on windows

First thanks for this script.

I have to take one more step to make it work on command prompt in any folder on windows. Hope you would put it into the Readme.

Add a macro so that you can invoke gitup from any directory: (Note that C:\python27\ refers to the directory where python 2.7 is installed)

DOSKEY gitup=c:\python27\python.exe c:\python27\Scripts\gitup $*

[Crash] UnicodeDecodeError

So, I added some repos, by the way, I found that bookmarks are not recursive, so I used a /*, that seemly, worked, it added all subfolders (on one level at least), so, after adding like 10 repos I run:
gitup
This is what I got (and every time I run it)

Prune and current directory doesn't work?

Hi,

i'm calling the tool with the command "python -m gitup . --prune" (the same result with "gitup . --prune"), but it doesn't perform prune command. No matter how many times I run it, the old branches are kept. Example message: Updating fix/XXXX-74/reviewsNotReturned: skipped: upstream does not exist.

Do I understand correctly, that --prune should remove those branches?

Too many open files error

Occasionally, if I haven't used gitup for some time and I run it, it will end with a "too many open files" error. I believe this is due to file handles not being closed after usage, but I can't be sure -- I haven't dug into the code.

Here's a sample error:

    rancid:
        Fetching origin (6/6)Traceback (most recent call last):
  File "/usr/local/Cellar/gitup/0.3/libexec/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.3', 'console_scripts', 'gitup')()
  File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/script.py", line 100, in run
    main()
  File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/script.py", line 95, in main
    update_bookmarks(get_bookmarks(), update_args)
  File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 212, in update_bookmarks
    _update_directory(path, update_args)
  File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 201, in _update_directory
    _update_subdirectories(path, update_args)
  File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 185, in _update_subdirectories
    _update_repository(repo, *update_args)
  File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 166, in _update_repository
    _fetch_remotes(remotes)
  File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 75, in _fetch_remotes
    results = remote.fetch(progress=_ProgressMonitor())
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/remote.py", line 651, in fetch
    res = self._get_fetch_info_from_stderr(proc, progress or RemoteProgress())
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/remote.py", line 588, in _get_fetch_info_from_stderr
    for err_line, fetch_line in zip(fetch_info_lines, fetch_head_info))
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/remote.py", line 588, in <genexpr>
    for err_line, fetch_line in zip(fetch_info_lines, fetch_head_info))
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/remote.py", line 276, in _from_line
    old_commit = repo.rev_parse(operation.split(split_token)[0])
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/repo/fun.py", line 304, in rev_parse
    obj = name_to_object(repo, rev)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/repo/fun.py", line 89, in name_to_object
    hexsha = short_to_long(repo.odb, name)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/repo/fun.py", line 70, in short_to_long
    return bin_to_hex(odb.partial_to_complete_sha_hex(hexsha))
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/db/base.py", line 258, in partial_to_complete_sha_hex
    full_bin_sha = db.partial_to_complete_sha(partial_binsha, len_partial_hexsha)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/db/pack.py", line 192, in partial_to_complete_sha
    item_index = item[1].index().partial_sha_to_index(partial_binsha, canonical_length)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/pack.py", line 459, in partial_sha_to_index
    get_sha = self.sha
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/util.py", line 237, in __getattr__
    self._set_cache_(attr)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/pack.py", line 289, in _set_cache_
    mmap = self._cursor.map()
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/util.py", line 237, in __getattr__
    self._set_cache_(attr)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/pack.py", line 278, in _set_cache_
    self._cursor = mman.make_cursor(self._indexpath).use_region()
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/smmap/mman.py", line 129, in use_region
    self._region = man._obtain_region(self._rlist, offset, size, flags, False)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/smmap/mman.py", line 573, in _obtain_region
    return self._obtain_region(a, offset, size, flags, True)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/smmap/mman.py", line 561, in _obtain_region
    r = self.MapRegionCls(a.path_or_fd(), mid.ofs, mid.size, flags)
  File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/smmap/util.py", line 167, in __init__
    self._mf = mmap(fd, actual_size, **kwargs)
mmap.error: [Errno 24] Too many open files

It happens when I have approx 20+ git repos in a directory, and only the parent is added to gitup, rather than each repo individually. It also doesn't happen every time, it only happens sometimes -- and generally if there's a lot of changes.

This is on the latest OSX, using version 0.3 from homebrew.

ImportError: No module named configparser

Hello @earwig

I am getting this error after installing to a new workstation.

  File "/home/dogstring/.local/bin/gitup", line 11, in <module>
    load_entry_point('gitup==0.5.1', 'console_scripts', 'gitup')()
  File "/home/dogstring/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/dogstring/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2852, in load_entry_point
    return ep.load()
  File "/home/dogstring/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2443, in load
    return self.resolve()
  File "/home/dogstring/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2449, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "build/bdist.linux-x86_64/egg/gitup/cli.py", line 18, in <module>
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 15, in <module>
  File "/home/dogstring/.local/lib/python2.7/site-packages/GitPython-3.1.0-py2.7.egg/git/__init__.py", line 40, in <module>
    from git.config import GitConfigParser  # @NoMove @IgnorePep8
  File "/home/dogstring/.local/lib/python2.7/site-packages/GitPython-3.1.0-py2.7.egg/git/config.py", line 28, in <module>
    import configparser as cp
ImportError: No module named configparser

I did follow the instruction though

Tip: git already has the main feature

Hello,

in case you did not know, your main use case for this script is already being taken care by git itself. You can setup a remote that really has several URLs:

# to set up a remote called "all" that will get updated with four URLs:
git remote add all URL1
git remote set-url all --add URL2
git remote set-url all --add URL3
git remote set-url all --add URL4

it's also a good idea to setup indepedently the remotes for each URL:

git remote add repo1 URL1
git remote add repo2 URL2
git remote add repo3 URL3
git remote add repo4 URL4

And then you can push to all the URLs by pushing to that remote

git push all master

Finally, you sure want to have all your refs up to date as well, so you can do:

git fetch --all

to keep all your refs in sync with the all remote.

hint: you can do the last two operations in one command, with the following alias:

git config alias.pushall "!pushall() { git push all $1 && git fetch --all ; }; pushall"

So I'm sure your tool does more than just that, but I thought I'd tell you about this, and I believe it'd be a good idea that you'd take advantage of that feature in your tool as well!

HTH

Incompatibility with python3.4

From git master HEAD:

$gitup --add ~/myrepo
Traceback (most recent call last):
  File "/usr/local/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.3', 'console_scripts', 'gitup')()
  File "/usr/local/lib/python3.4/dist-packages/gitup-0.3-py3.4.egg/gitup/script.py", line 100, in run
  File "/usr/local/lib/python3.4/dist-packages/gitup-0.3-py3.4.egg/gitup/script.py", line 83, in main
  File "/usr/local/lib/python3.4/dist-packages/gitup-0.3-py3.4.egg/gitup/config.py", line 84, in add_bookmarks
  File "/usr/local/lib/python3.4/dist-packages/gitup-0.3-py3.4.egg/gitup/config.py", line 59, in _save_config_file
  File "/usr/lib/python3.4/configparser.py", line 897, in write
    self._sections[section].items(), d)
  File "/usr/lib/python3.4/configparser.py", line 901, in _write_section
    fp.write("[{}]\n".format(section_name))
TypeError: 'str' does not support the buffer interface

clean directory check not working

This was probably just a git version issue, but the git status command on my env (MAC OS X, git version 1.8.2.3, hub version 1.10.6) was returning "nothing to commit, working directory clean". The updater script was expecting "nothing to commit (working directory clean)"

This repo updater worked fine after I manually changed the status string check and re-installed.

UnboundLocalError: local variable 'results' referenced before assignment

Just checked out and installed 845156c.

Ran gitup, it "updated" two repos which had no remote changes, and then:

    CouchPotatoServer:
        Fetching origin (1624/1624, 3414/3414)error: something went wrong in GitPython, but the fetch might have been successful.
Traceback (most recent call last):
  File "/Users/km/python/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.2', 'console_scripts', 'gitup')()
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/script.py", line 90, in run
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/script.py", line 85, in main
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 274, in update_bookmarks
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 261, in _update_directory
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 242, in _update_subdirectories
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 225, in _update_repository
  File "build/bdist.macosx-10.9-x86_64/egg/gitup/update.py", line 104, in _fetch_remotes
UnboundLocalError: local variable 'results' referenced before assignment

Pruning old branches

Quite often I'm in a situation where people create a lot of branches in the main repo and open a pull-request. Later on, those branches get deleted.

At the moment, I have to do "git remote update --prune" every time the number of branches no longer on the remote but not tracked locally gets out of hand. Is there any scope to add this into a normal "gitup" run too?

Feature Request: Support glob patterns in bookmarks

Currently, I can't simply put ~/Github/* in my "bookmarks" file. Since I can pass that as an argument to gitup, it seems reasonable it should be supported there too. I fully understand that the shell actually expands those globs, rather than the gitup command, but even still I think it would be useful.

ValueError: invalid literal for int() with base 10: 'rc0'

Hello,

I am installing gitup at Debian 7 stable and found this error

za@github:~/$ gitup planpin
gitup: the git-repo-updater

Directory "/home/za/github/planpin" is a git repository:
    planpin:
        Fetching originTraceback (most recent call last):
  File "/usr/local/bin/gitup", line 9, in <module>
    load_entry_point('gitup==0.2.2', 'console_scripts', 'gitup')()
  File "build/bdist.linux-i686/egg/gitup/script.py", line 90, in run
  File "build/bdist.linux-i686/egg/gitup/script.py", line 82, in main
  File "build/bdist.linux-i686/egg/gitup/update.py", line 288, in update_directories
  File "build/bdist.linux-i686/egg/gitup/update.py", line 274, in _update_directory
  File "build/bdist.linux-i686/egg/gitup/update.py", line 231, in _update_repository
  File "build/bdist.linux-i686/egg/gitup/update.py", line 90, in _fetch_remotes
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/remote.py", line 591, in fetch
    kwargs = add_progress(kwargs, self.repo.git, progress)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/remote.py", line 79, in add_progress
    v = git.version_info
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/cmd.py", line 250, in version_info
    return self._version_info
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/cmd.py", line 226, in __getattr__
    return LazyMixin.__getattr__(self, name)
  File "/usr/local/lib/python2.7/dist-packages/gitdb-0.5.4-py2.7-linux-i686.egg/gitdb/util.py", line 238, in __getattr__
    self._set_cache_(attr)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/cmd.py", line 233, in _set_cache_
    self._version_info = tuple(int(n) for n in version_numbers.split('.')[:4])
  File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.2.RC1-py2.7.egg/git/cmd.py", line 233, in <genexpr>
    self._version_info = tuple(int(n) for n in version_numbers.split('.')[:4])
ValueError: invalid literal for int() with base 10: 'rc0'

status - feature request

Hello,

First off, I really enjoy using the tool. Quite a time saver! Can you add a feature for a recursive git status command to check that I don't have any outstanding changes that need to be pushed up?

Thanks,

Mike

Incompatible with PyOxidizer

See PyOxidizer Issue 69 : Stop requiring __file__ in Python packages

I am trying to use git-repo-updater with PyOxidizer.

    Finished dev [unoptimized + debuginfo] target(s) in 1m 29s
writing executable to C:\Lab\PyOxidizer\git-repo-updator\.\build\x86_64-pc-windows-msvc\debug\exe\git-repo-updator.exe
>>> from gitup.cli import run
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "gitup.cli", line 18, in <module>
  File "gitup.update", line 15, in <module>
  File "git", line 33, in <module>
  File "git", line 22, in _init_externals
NameError: name '__file__' is not defined
>>>

git-repo-updater uses GitPython package : git-repo-updater setup.py, git-repo-updater source file

clean up deleted repo's?

Is there any way to have this automatically delete repositories that no longer exist?

Example of current:

git_checkout:
    Fetching origin: error: Could not read from remote repository. Please ma

ke sure you have the correct access rights and the repository exists.
Updating master: up to date.

[feature request] Package Manager Install

I think would be very usefull if there're was a way to perform a "npm install" after pulling changes from the remote.
I know not everybody uses npm, so I guess we can add support for yaml, for example, also, and perform a check of what package manager is being used, and call proper command.
I would like to implement this behaviour, I would like to know what do you think will be the better way to do this.

Thanks for your time, Damian.

running tests

Should I run gitup/test/__init__.py or some other test are available?

error: Could not read from remote repository - fails at different point each time

I am having difficulty getting gitup to update all 74 repos in a directory. The first repos update properly; then at some point during the run, I receive the error message below. If I cd into the first repo that fails, I can individually git pull without a problem. The issue does not always fail at the same repo, but once the error occurs then all subsequent repos fail for that run.

All of these repos were updating properly on an older computer. This issue occurred when I started using a new computer to update the repos. It is an M1 Mac mini, running gitup 0.5.1 (Python 3.10.0) installed via homebrew and git version 2.30.1 (Apple Git-130). I am using SSH for authentication, and I individually cloned each repo onto the new computer (from GitHub).

(Repo names changed to numbers...)

    repo12:
        Fetching origin: up to date.
        Updating master: up to date.
    repo13:
        Fetching origin: up to date.
        Updating master: up to date.
    repo14:
        Fetching origin: up to date.
        Updating master: up to date.
    repo15:
        Fetching origin: up to date.
        Updating master: up to date.
    repo16:
        Fetching origin: up to date.
        Updating master: up to date.
    repo17:
        Fetching origin: up to date.
        Updating master: up to date.
    repo18:
        Fetching origin: error: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
        Updating master: up to date.
    repo19:
        Fetching origin: error: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
        Updating master: up to date.
    repo20:
        Fetching origin: error: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
        Updating main: up to date.
    repo21:
        Fetching origin: error: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
        Updating main: up to date.
    repo22:
        Fetching origin: error: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
        Updating master: up to date.
    repo23:
        Fetching origin: error: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
        Updating main: up to date.
    repo24:
        Fetching origin: error: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
        Updating main: up to date.

For troubleshooting, I tried changing the SSH key (locally and pasting it at GitHub). Also, I have individually pulled from each repo to make sure that each one works. In some cases, I received the following error:

kex_exchange_identification: read: Connection reset by peer
fatal: Could not read from remote repository.

I was able to get around the error by cd into the repo, doing a git fetch, then a git pull, and the error was no longer present. But it is odd...

Thanks for any advice here!

PyPI install?

Would it be possible to upload this project as gitup or git-repo-updater to PyPI so that we could simply install (and update) via pip?

Homebrew already provides a convenient update mechanism for macOS users, but it would be more general if it was available via PyPI.

PS: Thanks for this very useful script!

Handling of submodules and local changes

Hi. Thanks for this great script. Before I use it, though, I'm wondering how it handles Git submodules. Does it pull the latest version of each submodule repo, or does it honour the commit id in the submodule record? Fwiw, I would like to have the option to do either. But if the submodules are pulled from the remote repo the script should really update the submodule record with those new commit ids.

Also, what happens if I make changes to local repos? Will this script push changes from all of my projects as well? (This is something that I would want--one pull at the start of my session and one push at the end.)

Thanks again.

Error..

getting this error on some of the repos i try to update. :-(

vim-airline:
Fetching origin (Traceback (most recent call last):
File "/usr/local/bin/gitup", line 9, in
load_entry_point('gitup==0.2.2', 'console_scripts', 'gitup')()
File "build/bdist.linux-x86_64/egg/gitup/script.py", line 90, in run
File "build/bdist.linux-x86_64/egg/gitup/script.py", line 82, in main
File "build/bdist.linux-x86_64/egg/gitup/update.py", line 288, in update_directories
File "build/bdist.linux-x86_64/egg/gitup/update.py", line 267, in _update_directory
File "build/bdist.linux-x86_64/egg/gitup/update.py", line 248, in _update_subdirectories
File "build/bdist.linux-x86_64/egg/gitup/update.py", line 231, in _update_repository
File "build/bdist.linux-x86_64/egg/gitup/update.py", line 90, in _fetch_remotes
File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.6-py2.7.egg/git/remote.py", line 626, in fetch
res = self._get_fetch_info_from_stderr(proc, progress or RemoteProgress())
File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.6-py2.7.egg/git/remote.py", line 541, in _get_fetch_info_from_stderr
for pline in progress_handler(line):
File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.6-py2.7.egg/git/util.py", line 285, in handler
return self._parse_progress_line(line.rstrip())
File "/usr/local/lib/python2.7/dist-packages/GitPython-0.3.6-py2.7.egg/git/util.py", line 275, in _parse_progress_line
message)
File "build/bdist.linux-x86_64/egg/gitup/update.py", line 44, in update
TypeError: object of type 'float' has no len()

[Errno 24] Too many open files

I just started getting this error, it stops on the same repo each time, but if i cd into that repo and run gitup . it works fine

    Fetching origin: up to date.
    Updating master: Traceback (most recent call last):
File "/usr/local/bin/gitup", line 9, in <module>
 load_entry_point('gitup==0.2.3', 'console_scripts', 'gitup')()
File "build/bdist.macosx-10.10-x86_64/egg/gitup/script.py", line 90, in run
File "build/bdist.macosx-10.10-x86_64/egg/gitup/script.py", line 82, in main
File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 296, in update_directories
File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 275, in _update_directory
File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 256, in _update_subdirectories
File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 240, in _update_repository
File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 198, in _update_branches
File "build/bdist.macosx-10.10-x86_64/egg/gitup/update.py", line 178, in _update_branch
File "/usr/local/lib/python2.7/site-packages/GitPython-1.0.0-py2.7.egg/git/refs/symbolic.py", line 183, in _get_commit
obj = self._get_object()
File "/usr/local/lib/python2.7/site-packages/GitPython-1.0.0-py2.7.egg/git/refs/symbolic.py", line 176, in _get_object
return Object.new_from_sha(self.repo, hex_to_bin(self.dereference_recursive(self.repo, self.path)))
File "/usr/local/lib/python2.7/site-packages/GitPython-1.0.0-py2.7.egg/git/objects/base.py", line 65, in new_from_sha
oinfo = repo.odb.info(sha1)
File "/usr/local/lib/python2.7/site-packages/gitdb-0.6.4-py2.7-macosx-10.10-x86_64.egg/gitdb/db/base.py", line 205, in info
return self._db_query(sha).info(sha)
File "/usr/local/lib/python2.7/site-packages/gitdb-0.6.4-py2.7-macosx-10.10-x86_64.egg/gitdb/db/loose.py", line 157, in info
m = self._map_loose_object(sha)
File "/usr/local/lib/python2.7/site-packages/gitdb-0.6.4-py2.7-macosx-10.10-x86_64.egg/gitdb/db/loose.py", line 135, in _map_loose_object
return file_contents_ro_filepath(db_path, flags=self._fd_open_flags)
File "/usr/local/lib/python2.7/site-packages/gitdb-0.6.4-py2.7-macosx-10.10-x86_64.egg/gitdb/util.py", line 190, in file_contents_ro_filepath
return file_contents_ro(fd, stream, allow_mmap)
File "/usr/local/lib/python2.7/site-packages/gitdb-0.6.4-py2.7-macosx-10.10-x86_64.egg/gitdb/util.py", line 163, in file_contents_ro
return mmap.mmap(fd, os.fstat(fd).st_size, access=mmap.ACCESS_READ)
mmap.error: [Errno 24] Too many open files

fails for repos with local ahead changes with upstream behind

ℹ️ current gitup dev@f7a060af

The repo:

 == BRANCHES == 
* master  7f6c811 [origin/master] some changes
  master2 b72feb7 [origin/master: 160 ahead, 100 behins] some playground changes

the error:

/home/marcel/Projects/repo (1 repo):
    repoName:
       Fetching origin (66/66): branch update (master).
        Updating master: done.
        Updating master2: Traceback (most recent call last):
  File "/usr/local/bin/gitup", line 11, in <module>
    load_entry_point('gitup==0.4.dev0', 'console_scripts', 'gitup')()
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 137, in run
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 129, in main
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 254, in update_directories
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 240, in _dispatch
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 179, in _update_repository
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 118, in _update_branch
  File "/usr/local/lib/python2.7/dist-packages/GitPython-2.0.8-py2.7.egg/git/cmd.py", line 466, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-2.0.8-py2.7.egg/git/cmd.py", line 934, in _call_process
    return self.execute(make_call(), **_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-2.0.8-py2.7.egg/git/cmd.py", line 718, in execute
    raise GitCommandError(command, status, stderr_value)
git.exc.GitCommandError: 'git merge-base b72feb7eefef00573061934097cd64266ad60a40 7f6c811d0f7b5896f2f49035a8190176a6cbeb01' returned with exit code 1

fails for some reasons with unicode problems

ℹ️ current gitup dev@f7a060af

        Fetching originTraceback (most recent call last):
  File "/usr/local/bin/gitup", line 11, in <module>
    load_entry_point('gitup==0.4.dev0', 'console_scripts', 'gitup')()
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 137, in run
  File "build/bdist.linux-x86_64/egg/gitup/script.py", line 129, in main
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 254, in update_directories
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 240, in _dispatch
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 175, in _update_repository
  File "build/bdist.linux-x86_64/egg/gitup/update.py", line 78, in _fetch_remotes
  File "/usr/local/lib/python2.7/dist-packages/GitPython-2.0.8-py2.7.egg/git/remote.py", line 743, in fetch
    res = self._get_fetch_info_from_stderr(proc, progress)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-2.0.8-py2.7.egg/git/remote.py", line 640, in _get_fetch_info_from_stderr
    finalize_process(proc, stderr=stderr_text)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-2.0.8-py2.7.egg/git/util.py", line 155, in finalize_process
    proc.wait(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/GitPython-2.0.8-py2.7.egg/git/cmd.py", line 322, in wait
    stderr = force_bytes(stderr)
  File "/usr/lib/python2.7/dist-packages/gitdb/utils/encoding.py", line 16, in force_bytes
    return data.encode(encoding)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 224: ordinal not in range(128)

perhaps related / answered by http://stackoverflow.com/questions/5760936

I'm not that in with python ;/

also I can't see any branch with umlauts
but indeed, there are many branches in the affected repo using git-flow scheme like feature/TICKET-882_Some_Short_Description, all of them or none matching with git branch -avv | grep "[^a-Z0-9\.\/_\-]"
Messages may indeed contain umlauts, but that should not be a problem anyway

Feature request: Turbo mode

Currently gitup sequentially pulls repo's one by one inside the passed in folder. What if there was a turbo mode which executes git pull on all the repo's concurrently? The tty print can be suppressed in that case and maybe a report generated (since there could be theoretically 100'ds of repo's being updated at the same time). Just a thought. Python is not my forte so can't create a PR with the suggested change :(.

Bookmarks doesn't work on windows with python2

Hi ! Thanks for this nice tool. Mostly works fine but only issue I have is that bookmarks doesn't work on windows with python2. When I add a path, it gets added to the config.ini file but when I run gitup, it just exits with Error: C doesn't exist
The issue seems to be with python2 configparser treating colons as delimiters. I did a pip install configparser (it installed v3.3.0r2) and it works fine now.
Maybe add it to setup.py?

Too many open files

Traceback (most recent call last):
File "/usr/local/Cellar/gitup/0.3/libexec/bin/gitup", line 9, in
load_entry_point('gitup==0.3', 'console_scripts', 'gitup')()
File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/script.py", line 100, in run
main()
File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/script.py", line 92, in main
update_directories(args.directories_to_update, update_args)
File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 220, in update_directories
_update_directory(full_path, update_args)
File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 201, in _update_directory
_update_subdirectories(path, update_args)
File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 185, in _update_subdirectories
_update_repository(repo, *update_args)
File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 166, in _update_repository
_fetch_remotes(remotes)
File "/usr/local/Cellar/gitup/0.3/libexec/lib/python2.7/site-packages/gitup/update.py", line 75, in _fetch_remotes
results = remote.fetch(progress=_ProgressMonitor())
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/remote.py", line 643, in fetch
kwargs = add_progress(kwargs, self.repo.git, progress)
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/remote.py", line 51, in add_progress
v = git.version_info
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 462, in version_info
return self._version_info
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 439, in getattr
return LazyMixin.getattr(self, name)
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/gitdb/util.py", line 237, in getattr
self.set_cache(attr)
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 445, in set_cache
version_numbers = self._call_process('version').split(' ')[2]
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 834, in _call_process
return self.execute(make_call(), **_kwargs)
File "/usr/local/Cellar/gitup/0.3/libexec/vendor/lib/python2.7/site-packages/git/cmd.py", line 576, in execute
raise GitCommandNotFound(str(err))
git.exc.GitCommandNotFound: [Errno 24] Too many open files

error when install on windows: "'module' object has no attribute '"

Windows 10E
Running python 2.7 x86

Any ideas?

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\Administrator>cd c:\



c:\>git clone git://github.com/earwig/git-repo-updater.git
Cloning into 'git-repo-updater'...
remote: Counting objects: 413, done.
Receiving objects:  87% (360/413)   0 (delta 0), pack-reused 413R
Receiving objects: 100% (413/413), 94.97 KiB | 0 bytes/s, done.
Resolving deltas: 100% (251/251), done.

c:\>cd git-repo-updater

c:\git-repo-updater>python setup.py install
Traceback (most recent call last):
  File "setup.py", line 8, in <module>
    from setuptools import setup, find_packages
  File "C:\Python27\lib\site-packages\setuptools\__init__.py", line 23, in <module>
    __version__ = setuptools.version.__version__
AttributeError: 'module' object has no attribute '__version__'

c:\git-repo-updater>python setup.py install --user
Traceback (most recent call last):
  File "setup.py", line 8, in <module>
    from setuptools import setup, find_packages
  File "C:\Python27\lib\site-packages\setuptools\__init__.py", line 23, in <module>
    __version__ = setuptools.version.__version__
AttributeError: 'module' object has no attribute '__version__'

c:\git-repo-updater>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.