mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
project: handle verbose with initial clone bundle
If we're not in --verbose mode with repo sync, then omit the per-project clone bundle progress bar. Bug: https://crbug.com/gerrit/11293 Change-Id: Ibdf3be86d35fcbccbf6788c192189f38c577e6e9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/255854 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: David Pursehouse <dpursehouse@collab.net>
This commit is contained in:
parent
8a98efee5c
commit
e50b6a7c4f
26
project.py
26
project.py
@ -1487,9 +1487,9 @@ class Project(object):
|
||||
else:
|
||||
alt_dir = None
|
||||
|
||||
if clone_bundle \
|
||||
and alt_dir is None \
|
||||
and self._ApplyCloneBundle(initial=is_new, quiet=quiet):
|
||||
if (clone_bundle
|
||||
and alt_dir is None
|
||||
and self._ApplyCloneBundle(initial=is_new, quiet=quiet, verbose=verbose)):
|
||||
is_new = False
|
||||
|
||||
if not current_branch_only:
|
||||
@ -2415,7 +2415,7 @@ class Project(object):
|
||||
|
||||
return ok
|
||||
|
||||
def _ApplyCloneBundle(self, initial=False, quiet=False):
|
||||
def _ApplyCloneBundle(self, initial=False, quiet=False, verbose=False):
|
||||
if initial and \
|
||||
(self.manifest.manifestProject.config.GetString('repo.depth') or
|
||||
self.clone_depth):
|
||||
@ -2439,7 +2439,8 @@ class Project(object):
|
||||
return False
|
||||
|
||||
if not exist_dst:
|
||||
exist_dst = self._FetchBundle(bundle_url, bundle_tmp, bundle_dst, quiet)
|
||||
exist_dst = self._FetchBundle(bundle_url, bundle_tmp, bundle_dst, quiet,
|
||||
verbose)
|
||||
if not exist_dst:
|
||||
return False
|
||||
|
||||
@ -2460,13 +2461,13 @@ class Project(object):
|
||||
platform_utils.remove(bundle_tmp)
|
||||
return ok
|
||||
|
||||
def _FetchBundle(self, srcUrl, tmpPath, dstPath, quiet):
|
||||
def _FetchBundle(self, srcUrl, tmpPath, dstPath, quiet, verbose):
|
||||
if os.path.exists(dstPath):
|
||||
platform_utils.remove(dstPath)
|
||||
|
||||
cmd = ['curl', '--fail', '--output', tmpPath, '--netrc', '--location']
|
||||
if quiet:
|
||||
cmd += ['--silent']
|
||||
cmd += ['--silent', '--show-error']
|
||||
if os.path.exists(tmpPath):
|
||||
size = os.stat(tmpPath).st_size
|
||||
if size >= 1024:
|
||||
@ -2488,12 +2489,17 @@ class Project(object):
|
||||
|
||||
if IsTrace():
|
||||
Trace('%s', ' '.join(cmd))
|
||||
if verbose:
|
||||
print('%s: Downloading bundle: %s' % (self.name, srcUrl))
|
||||
stdout = None if verbose else subprocess.PIPE
|
||||
stderr = None if verbose else subprocess.STDOUT
|
||||
try:
|
||||
proc = subprocess.Popen(cmd)
|
||||
proc = subprocess.Popen(cmd, stdout=stdout, stderr=stderr)
|
||||
except OSError:
|
||||
return False
|
||||
|
||||
curlret = proc.wait()
|
||||
(output, _) = proc.communicate()
|
||||
curlret = proc.returncode
|
||||
|
||||
if curlret == 22:
|
||||
# From curl man page:
|
||||
@ -2504,6 +2510,8 @@ class Project(object):
|
||||
print("Server does not provide clone.bundle; ignoring.",
|
||||
file=sys.stderr)
|
||||
return False
|
||||
elif curlret and not verbose and output:
|
||||
print('%s' % output, file=sys.stderr)
|
||||
|
||||
if os.path.exists(tmpPath):
|
||||
if curlret == 0 and self._IsValidBundle(tmpPath, quiet):
|
||||
|
Loading…
Reference in New Issue
Block a user