mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Fix errors when clone.bundle missing on server
Catch curl failures to download clone.bundle; don't let git try to parse the 404 page as a bundle file (was causing much user confusion). This should eliminate false error messages from init and sync such as: error: '.repo/manifests.git/clone.bundle' does not look like a v2 bundle file fatal: Could not read bundle '.repo/manifests.git/clone.bundle'. error: RPC failed; result=22, HTTP code = 400 Signed-off-by: Matt Gumbel <matthew.k.gumbel@intel.com> Change-Id: I7994f7c0baecfb45bb5a5850c48bd2a0ffabe773
This commit is contained in:
parent
bb1b5f5f86
commit
2dc810c2e4
16
project.py
16
project.py
@ -1529,7 +1529,7 @@ class Project(object):
|
|||||||
if os.path.exists(dstPath):
|
if os.path.exists(dstPath):
|
||||||
os.remove(dstPath)
|
os.remove(dstPath)
|
||||||
|
|
||||||
cmd = ['curl', '--output', tmpPath, '--netrc', '--location']
|
cmd = ['curl', '--fail', '--output', tmpPath, '--netrc', '--location']
|
||||||
if quiet:
|
if quiet:
|
||||||
cmd += ['--silent']
|
cmd += ['--silent']
|
||||||
if os.path.exists(tmpPath):
|
if os.path.exists(tmpPath):
|
||||||
@ -1549,9 +1549,19 @@ class Project(object):
|
|||||||
except OSError:
|
except OSError:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
ok = proc.wait() == 0
|
curlret = proc.wait()
|
||||||
|
|
||||||
|
if curlret == 22:
|
||||||
|
# From curl man page:
|
||||||
|
# 22: HTTP page not retrieved. The requested url was not found or
|
||||||
|
# returned another error with the HTTP error code being 400 or above.
|
||||||
|
# This return code only appears if -f, --fail is used.
|
||||||
|
if not quiet:
|
||||||
|
print >> sys.stderr, "Server does not provide clone.bundle; ignoring."
|
||||||
|
return False
|
||||||
|
|
||||||
if os.path.exists(tmpPath):
|
if os.path.exists(tmpPath):
|
||||||
if ok and os.stat(tmpPath).st_size > 16:
|
if curlret == 0 and os.stat(tmpPath).st_size > 16:
|
||||||
os.rename(tmpPath, dstPath)
|
os.rename(tmpPath, dstPath)
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user