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
Tested-by: Mike Frysinger
diff --git a/git_command.py b/git_command.py
index c7e94fd..26668a3 100644
--- a/git_command.py
+++ b/git_command.py
@@ -226,6 +226,7 @@
provide_stdin=False,
capture_stdout=False,
capture_stderr=False,
+ merge_output=False,
disable_editor=False,
ssh_proxy=False,
cwd=None,
@@ -277,7 +278,7 @@
stdin = None
stdout = subprocess.PIPE
- stderr = subprocess.PIPE
+ stderr = subprocess.STDOUT if merge_output else subprocess.PIPE
if IsTrace():
global LAST_CWD
@@ -305,6 +306,8 @@
dbg += ' 1>|'
if stderr == subprocess.PIPE:
dbg += ' 2>|'
+ elif stderr == subprocess.STDOUT:
+ dbg += ' 2>&1'
Trace('%s', dbg)
try:
@@ -352,7 +355,8 @@
p = self.process
s_in = platform_utils.FileDescriptorStreams.create()
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.stderr = ''