From 42b995792ce0bb93f796fe53d6ac9568800ee29b Mon Sep 17 00:00:00 2001 From: Josip Sokcevic Date: Tue, 2 Jan 2024 17:30:33 +0000 Subject: [PATCH] [gclient] Cache rev-list HEAD call This optimization saves about 9% of overall gclient sync on chromium/src. R=gavinmak@google.com Change-Id: I4700e9db9e91a69746e212f6f04376dfb38bef91 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5147495 Commit-Queue: Josip Sokcevic Reviewed-by: Gavin Mak --- gclient.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gclient.py b/gclient.py index b692f2ee7..ead059627 100755 --- a/gclient.py +++ b/gclient.py @@ -1116,15 +1116,18 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): options.revision = revision_override self._used_revision = options.revision self._used_scm = self.CreateSCM(out_cb=work_queue.out_cb) + latest_commit = None if command != 'update' or self.GetScmName() != 'git': self._got_revision = self._used_scm.RunCommand( command, options, args, file_list) else: + # We are running update. try: start = time.time() sync_status = metrics_utils.SYNC_STATUS_FAILURE self._got_revision = self._used_scm.RunCommand( command, options, args, file_list) + latest_commit = self._got_revision sync_status = metrics_utils.SYNC_STATUS_SUCCESS finally: url, revision = gclient_utils.SplitUrlRevision(self.url) @@ -1146,7 +1149,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): latest_commit = self._used_scm.apply_patch_ref( patch_repo, patch_ref, target_branch, options, file_list) - else: + elif latest_commit is None: latest_commit = self._used_scm.revinfo(None, None, None) existing_sync_commits = json.loads( os.environ.get(PREVIOUS_SYNC_COMMITS, '{}'))