Forráskód Böngészése

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>
Mike Frysinger 6 éve
szülő
commit
31990f0097
2 módosított fájl, 10 hozzáadás és 3 törlés
  1. 6 2
      git_command.py
  2. 4 1
      project.py

+ 6 - 2
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 = ''
 

+ 4 - 1
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: