From 751c658593fd3f4f93918ea5cca9866814974005 Mon Sep 17 00:00:00 2001 From: Josip Sokcevic Date: Tue, 2 Jan 2024 20:57:01 +0000 Subject: [PATCH] [gclient] Reuse rev-parse output in verbose mode If verbose mode is used, we call rev-parse x2 for each git dependency. Reusing the value results in 10% reduction for gclient no-op sync (~2s savings). R=gavinmak@google.com Change-Id: I7d1a0a13f2aea3df20b25816fef22ef777a12bf5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5146995 Reviewed-by: Gavin Mak Commit-Queue: Josip Sokcevic --- gclient_scm.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gclient_scm.py b/gclient_scm.py index 70d59d9c36..6ade70bd71 100644 --- a/gclient_scm.py +++ b/gclient_scm.py @@ -1036,11 +1036,6 @@ class GitWrapper(SCMWrapper): 'Fix the conflict and run gclient again.\n' 'See man git-rebase for details.\n' % (self.relpath, revision)) - if verbose: - self.Print('Checked out revision %s' % - self.revinfo(options, (), None), - timestamp=False) - # If --reset and --delete_unversioned_trees are specified, remove any # untracked directories. if options.reset and options.delete_unversioned_trees: @@ -1058,7 +1053,10 @@ class GitWrapper(SCMWrapper): self.Print('_____ removing unversioned directory %s' % path) gclient_utils.rmtree(full_path) - return self._Capture(['rev-parse', '--verify', 'HEAD']) + rev_hash = self._Capture(['rev-parse', '--verify', 'HEAD']) + if verbose: + self.Print(f'Checked out revision {rev_hash}', timestamp=False) + return rev_hash def revert(self, options, _args, file_list): """Reverts local modifications.