mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
Update gclient to use git config caching
This change updates all the modules used by gclient to use `scm.GIT` for git config calls over directly invoking the subprocess. This change currently doesn't modify git_cache since the config reads and writes within it are done on bare repository. A follow-up CL will update git_cache. A follow-up CL will also update git_cl and git_map_branches since they have shown performance improvements too: https://crrev.com/c/4697786. Benchmarking ============ With chromium/src as the baseline super project, this change reduces about 380 git config calls out of 507 total calls on cache hits during no-op. The below numbers are benchmarked with `update_depot_tools` turned off. Windows Benchmark ================= Baseline (gpaste/6360045736951808): ~1min 12 sec. With Caching (gpaste/6480065209040896): ~1min 3sec. ~12.5% decrease in gclient sync noop runtime. Linux Benchmark =============== Baseline (gpaste/4730436763254784): ~3.739 sec. With Caching (gpaste/4849870978940928): ~3.534 sec. ~5.5% decrease in gclient sync noop runtime. Bug: 1501984 Change-Id: Ib48df2d26a0c742a9b555a1e2ed6366221c7db17 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5252498 Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
This commit is contained in:
committed by
LUCI CQ
parent
0784439733
commit
3edda8d185
@@ -48,8 +48,7 @@ def fetch_remotes(branch_tree):
|
||||
tag_set = git.tags()
|
||||
fetchspec_map = {}
|
||||
all_fetchspec_configs = git.get_config_regexp(r'^remote\..*\.fetch')
|
||||
for fetchspec_config in all_fetchspec_configs:
|
||||
key, _, fetchspec = fetchspec_config.partition(' ')
|
||||
for key, fetchspec in all_fetchspec_configs:
|
||||
dest_spec = fetchspec.partition(':')[2]
|
||||
remote_name = key.split('.')[1]
|
||||
fetchspec_map[dest_spec] = remote_name
|
||||
|
||||
Reference in New Issue
Block a user