summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2020-02-22 00:07:35 -0500
committerMike Frysinger <vapier@google.com>2020-03-14 04:02:42 +0000
commit4847e0574303f90438335a7c6c7c009145deb8ef (patch)
tree97190c4cad95c1b4ece90394ec5023d3a63ac7c1
parentbb8ee7f54a4e0bf07d466304d800f13ec41ac21c (diff)
downloadgit-repo-4847e0574303f90438335a7c6c7c009145deb8ef.tar.gz
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 <vapier@google.com> Reviewed-by: Michael Mortensen <mmortensen@google.com>
-rw-r--r--project.py15
-rwxr-xr-xrepo10
2 files changed, 15 insertions, 10 deletions
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):
2440 if os.path.exists(os.path.join(self.gitdir, 'shallow')): 2440 if os.path.exists(os.path.join(self.gitdir, 'shallow')):
2441 cmd.append('--depth=2147483647') 2441 cmd.append('--depth=2147483647')
2442 2442
2443 if quiet: 2443 if not verbose:
2444 cmd.append('--quiet') 2444 cmd.append('--quiet')
2445 if not quiet and sys.stdout.isatty():
2446 cmd.append('--progress')
2445 if not self.worktree: 2447 if not self.worktree:
2446 cmd.append('--update-head-ok') 2448 cmd.append('--update-head-ok')
2447 cmd.append(name) 2449 cmd.append(name)
@@ -2498,7 +2500,7 @@ class Project(object):
2498 ok = False 2500 ok = False
2499 for _i in range(2): 2501 for _i in range(2):
2500 gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy, 2502 gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy,
2501 merge_output=True, capture_stdout=not verbose) 2503 merge_output=True, capture_stdout=quiet)
2502 ret = gitcmd.Wait() 2504 ret = gitcmd.Wait()
2503 if ret == 0: 2505 if ret == 0:
2504 ok = True 2506 ok = True
@@ -2578,8 +2580,10 @@ class Project(object):
2578 return False 2580 return False
2579 2581
2580 cmd = ['fetch'] 2582 cmd = ['fetch']
2581 if quiet: 2583 if not verbose:
2582 cmd.append('--quiet') 2584 cmd.append('--quiet')
2585 if not quiet and sys.stdout.isatty():
2586 cmd.append('--progress')
2583 if not self.worktree: 2587 if not self.worktree:
2584 cmd.append('--update-head-ok') 2588 cmd.append('--update-head-ok')
2585 cmd.append(bundle_dst) 2589 cmd.append(bundle_dst)
@@ -2639,9 +2643,8 @@ class Project(object):
2639 # 22: HTTP page not retrieved. The requested url was not found or 2643 # 22: HTTP page not retrieved. The requested url was not found or
2640 # returned another error with the HTTP error code being 400 or above. 2644 # returned another error with the HTTP error code being 400 or above.
2641 # This return code only appears if -f, --fail is used. 2645 # This return code only appears if -f, --fail is used.
2642 if not quiet: 2646 if verbose:
2643 print("Server does not provide clone.bundle; ignoring.", 2647 print('Server does not provide clone.bundle; ignoring.')
2644 file=sys.stderr)
2645 return False 2648 return False
2646 elif curlret and not verbose and output: 2649 elif curlret and not verbose and output:
2647 print('%s' % output, file=sys.stderr) 2650 print('%s' % output, file=sys.stderr)
diff --git a/repo b/repo
index 0bf21210..18694c53 100755
--- a/repo
+++ b/repo
@@ -758,15 +758,17 @@ def _InitHttp():
758 758
759def _Fetch(url, cwd, src, quiet, verbose): 759def _Fetch(url, cwd, src, quiet, verbose):
760 cmd = ['fetch'] 760 cmd = ['fetch']
761 if quiet: 761 if not verbose:
762 cmd.append('--quiet') 762 cmd.append('--quiet')
763 err = None
764 if not quiet and sys.stdout.isatty():
765 cmd.append('--progress')
766 elif not verbose:
763 err = subprocess.PIPE 767 err = subprocess.PIPE
764 else:
765 err = None
766 cmd.append(src) 768 cmd.append(src)
767 cmd.append('+refs/heads/*:refs/remotes/origin/*') 769 cmd.append('+refs/heads/*:refs/remotes/origin/*')
768 cmd.append('+refs/tags/*:refs/tags/*') 770 cmd.append('+refs/tags/*:refs/tags/*')
769 run_git(*cmd, stderr=err, cwd=cwd) 771 run_git(*cmd, stderr=err, capture_output=False, cwd=cwd)
770 772
771 773
772def _DownloadBundle(url, cwd, quiet, verbose): 774def _DownloadBundle(url, cwd, quiet, verbose):