From 4847e0574303f90438335a7c6c7c009145deb8ef Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 22 Feb 2020 00:07:35 -0500 Subject: repo/init/sync: rework default git download output When we download git sources, we get a progress bar (good) and we get a dump of all the refs we downloaded (bad) as it can easily be 100+ if not 1000+ depending on the project (for each git repo!). Lets rework the output behavior so that: * quiet: Only errors. * default: Progress bars (if on a tty). * verbose: Full output (progress bars & downloaded refs). Bug: https://crbug.com/gerrit/11293 Change-Id: I87a380075e79de6805f91095876dd1b37d32873a Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/256456 Tested-by: Mike Frysinger Reviewed-by: Michael Mortensen --- project.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'project.py') diff --git a/project.py b/project.py index fe55371e..4c8c2bab 100644 --- a/project.py +++ b/project.py @@ -2440,8 +2440,10 @@ class Project(object): if os.path.exists(os.path.join(self.gitdir, 'shallow')): cmd.append('--depth=2147483647') - if quiet: + if not verbose: cmd.append('--quiet') + if not quiet and sys.stdout.isatty(): + cmd.append('--progress') if not self.worktree: cmd.append('--update-head-ok') cmd.append(name) @@ -2498,7 +2500,7 @@ class Project(object): ok = False for _i in range(2): gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy, - merge_output=True, capture_stdout=not verbose) + merge_output=True, capture_stdout=quiet) ret = gitcmd.Wait() if ret == 0: ok = True @@ -2578,8 +2580,10 @@ class Project(object): return False cmd = ['fetch'] - if quiet: + if not verbose: cmd.append('--quiet') + if not quiet and sys.stdout.isatty(): + cmd.append('--progress') if not self.worktree: cmd.append('--update-head-ok') cmd.append(bundle_dst) @@ -2639,9 +2643,8 @@ class Project(object): # 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("Server does not provide clone.bundle; ignoring.", - file=sys.stderr) + if verbose: + print('Server does not provide clone.bundle; ignoring.') return False elif curlret and not verbose and output: print('%s' % output, file=sys.stderr) -- cgit v1.2.3-54-g00ecf