project: move successful fetch output behind verbose

Syncing projects works fine the majority of the time.  So rather than
dump all of that noisy output to stdout, lets capture it and only show
when things fail or in verbose mode.  This tidies up the default `repo
sync` output.

Bug: https://crbug.com/gerrit/11293
Change-Id: I8314dd92e1e6aadeb26e36a8c92610da419684e6
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/255413
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
Tested-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
Mike Frysinger 2020-02-17 01:35:18 -05:00
parent 16f2fae16f
commit 31990f0097
2 changed files with 10 additions and 3 deletions

View File

@ -226,6 +226,7 @@ class GitCommand(object):
provide_stdin=False, provide_stdin=False,
capture_stdout=False, capture_stdout=False,
capture_stderr=False, capture_stderr=False,
merge_output=False,
disable_editor=False, disable_editor=False,
ssh_proxy=False, ssh_proxy=False,
cwd=None, cwd=None,
@ -277,7 +278,7 @@ class GitCommand(object):
stdin = None stdin = None
stdout = subprocess.PIPE stdout = subprocess.PIPE
stderr = subprocess.PIPE stderr = subprocess.STDOUT if merge_output else subprocess.PIPE
if IsTrace(): if IsTrace():
global LAST_CWD global LAST_CWD
@ -305,6 +306,8 @@ class GitCommand(object):
dbg += ' 1>|' dbg += ' 1>|'
if stderr == subprocess.PIPE: if stderr == subprocess.PIPE:
dbg += ' 2>|' dbg += ' 2>|'
elif stderr == subprocess.STDOUT:
dbg += ' 2>&1'
Trace('%s', dbg) Trace('%s', dbg)
try: try:
@ -352,7 +355,8 @@ class GitCommand(object):
p = self.process p = self.process
s_in = platform_utils.FileDescriptorStreams.create() s_in = platform_utils.FileDescriptorStreams.create()
s_in.add(p.stdout, sys.stdout, 'stdout') s_in.add(p.stdout, sys.stdout, 'stdout')
s_in.add(p.stderr, sys.stderr, 'stderr') if p.stderr is not None:
s_in.add(p.stderr, sys.stderr, 'stderr')
self.stdout = '' self.stdout = ''
self.stderr = '' self.stderr = ''

View File

@ -2365,7 +2365,8 @@ class Project(object):
ok = False ok = False
for _i in range(2): for _i in range(2):
gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy) gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy,
merge_output=True, capture_stdout=not verbose)
ret = gitcmd.Wait() ret = gitcmd.Wait()
if ret == 0: if ret == 0:
ok = True ok = True
@ -2388,6 +2389,8 @@ class Project(object):
elif ret < 0: elif ret < 0:
# Git died with a signal, exit immediately # Git died with a signal, exit immediately
break break
if not verbose:
print('%s:\n%s' % (self.name, gitcmd.stdout), file=sys.stderr)
time.sleep(random.randint(30, 45)) time.sleep(random.randint(30, 45))
if initial: if initial: