From 31990f009719730c8be9d33b8d6cc94048f6d54b Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 17 Feb 2020 01:35:18 -0500 Subject: [PATCH] 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 --- git_command.py | 8 ++++++-- project.py | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/git_command.py b/git_command.py index c7e94fd0..26668a39 100644 --- a/git_command.py +++ b/git_command.py @@ -226,6 +226,7 @@ class GitCommand(object): provide_stdin=False, capture_stdout=False, capture_stderr=False, + merge_output=False, disable_editor=False, ssh_proxy=False, cwd=None, @@ -277,7 +278,7 @@ class GitCommand(object): 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 @@ class GitCommand(object): dbg += ' 1>|' if stderr == subprocess.PIPE: dbg += ' 2>|' + elif stderr == subprocess.STDOUT: + dbg += ' 2>&1' Trace('%s', dbg) try: @@ -352,7 +355,8 @@ class GitCommand(object): 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 = '' diff --git a/project.py b/project.py index 57a5832e..3c4b4aef 100644 --- a/project.py +++ b/project.py @@ -2365,7 +2365,8 @@ class Project(object): ok = False 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() if ret == 0: ok = True @@ -2388,6 +2389,8 @@ class Project(object): elif ret < 0: # Git died with a signal, exit immediately break + if not verbose: + print('%s:\n%s' % (self.name, gitcmd.stdout), file=sys.stderr) time.sleep(random.randint(30, 45)) if initial: