mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-01-30 16:14:27 +00:00
679bac4bf3
The fetch logic for the case where depth is set and revision is a SHA1 has several failure modes that are not handled well by the current logic. 1) 'git fetch <SHA1>' requires git version >= 1.8.3 2) 'git fetch <SHA1>' can be prevented by a configuration option on the server. 3) 'git fetch --depth=<N> <refspec>' can fail to contain a SHA1 specified by the manifest. Each of these cases cause infinite recursion when _RemoteFetch() tries to call itself with current_branch_only=False because current_branch_only is set to True when depth != None. To try to prevent the infinite recursion, we set self.clone_depth to None before the first retry of _RemoteFetch(). This will allow the Fetch to eventually succeed in the case where clone-depth is specified in the manifest. A user specified depth from the init command will still recurse infinitely. In addition, never try to fetch a SHA1 directly if the git version being used is not at least 1.8.3. Change-Id: I802fc17878c0929cfd63fff611633c1d3b54ecd3 |
||
---|---|---|
docs | ||
hooks | ||
subcmds | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.project | ||
.pydevproject | ||
.pylintrc | ||
color.py | ||
command.py | ||
COPYING | ||
editor.py | ||
error.py | ||
git_command.py | ||
git_config.py | ||
git_refs.py | ||
git_ssh | ||
main.py | ||
manifest_xml.py | ||
pager.py | ||
progress.py | ||
project.py | ||
pyversion.py | ||
repo | ||
SUBMITTING_PATCHES | ||
trace.py | ||
wrapper.py |