Restore 103787 (fix git progress message), and update test expectations.
Review URL: http://codereview.chromium.org/8161009
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104504 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient_scm.py b/gclient_scm.py
index e2a0bdd..95890a4 100644
--- a/gclient_scm.py
+++ b/gclient_scm.py
@@ -494,7 +494,7 @@
# to stdout
print('')
- clone_cmd = ['clone']
+ clone_cmd = ['clone', '--progress']
if revision.startswith('refs/heads/'):
clone_cmd.extend(['-b', revision.replace('refs/heads/', '')])
detach_head = False
@@ -510,9 +510,20 @@
if not os.path.exists(parent_dir):
os.makedirs(parent_dir)
+ percent_re = re.compile('.* ([0-9]{1,2})% .*')
+ def _GitFilter(line):
+ # git uses an escape sequence to clear the line; elide it.
+ esc = line.find(unichr(033))
+ if esc > -1:
+ line = line[:esc]
+ match = percent_re.match(line)
+ if not match or not int(match.group(1)) % 10:
+ print '%s' % line
+
for _ in range(3):
try:
- self._Run(clone_cmd, options, cwd=self._root_dir)
+ self._Run(clone_cmd, options, cwd=self._root_dir, filter_fn=_GitFilter,
+ print_stdout=False)
break
except subprocess2.CalledProcessError, e:
# Too bad we don't have access to the actual output yet.
@@ -679,8 +690,11 @@
def _Run(self, args, options, **kwargs):
kwargs.setdefault('cwd', self.checkout_path)
- gclient_utils.CheckCallAndFilterAndHeader(['git'] + args,
- always=options.verbose, **kwargs)
+ kwargs.setdefault('print_stdout', True)
+ stdout = kwargs.get('stdout', sys.stdout)
+ stdout.write('\n________ running \'git %s\' in \'%s\'\n' % (
+ ' '.join(args), kwargs['cwd']))
+ gclient_utils.CheckCallAndFilter(['git'] + args, **kwargs)
class SVNWrapper(SCMWrapper):