mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
13f323b2c2
Running lots of sync processes in parallel can hit the failure: Fetching projects: 23% (124/523)Exception in thread Thread-201: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 754, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/src/repo/subcmds/sync.py", line 278, in _FetchProjectList success = self._FetchHelper(opt, project, *args, **kwargs) File "/usr/local/src/repo/subcmds/sync.py", line 357, in _FetchHelper start, finish, success) File "/usr/local/src/repo/event_log.py", line 104, in AddSync event = self.Add(project.relpath, task_name, start, finish, success) File "/usr/local/src/repo/event_log.py", line 74, in Add 'id': (kind, next(self._next_id)), ValueError: generator already executing It looks like, while we lock the multiprocessing value correctly, the generator that wraps the value isn't parallel safe. Since we don't have a way of doing that (as it's part of the language), turn it into a plain function call instead. Bug: https://crbug.com/gerrit/10293 Change-Id: I0db03601986ca0370a1699bab32adb03e7b2910a |
||
---|---|---|
docs | ||
hooks | ||
subcmds | ||
tests | ||
.flake8 | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.project | ||
.pydevproject | ||
color.py | ||
command.py | ||
COPYING | ||
editor.py | ||
error.py | ||
event_log.py | ||
git_command.py | ||
git_config.py | ||
git_refs.py | ||
git_ssh | ||
gitc_utils.py | ||
main.py | ||
manifest_xml.py | ||
pager.py | ||
platform_utils_win32.py | ||
platform_utils.py | ||
progress.py | ||
project.py | ||
pyversion.py | ||
README.md | ||
repo | ||
SUBMITTING_PATCHES.md | ||
trace.py | ||
wrapper.py |
repo
Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. The repo command is an executable Python script that you can put anywhere in your path.
- Homepage: https://gerrit.googlesource.com/git-repo/
- Bug reports: https://bugs.chromium.org/p/gerrit/issues/list?q=component:repo
- Source: https://gerrit.googlesource.com/git-repo/
- Overview: https://source.android.com/source/developing.html
- Docs: https://source.android.com/source/using-repo.html
- repo Manifest Format
- repo Hooks
- Submitting patches