-
danakj authored
There are 3 layers modified, starting from the bottom up: 1. git_cache.py populate Now takes a --no-fetch-tags option. If specified, the cache will not fetch updated tags from the server by passing --no-tags to git fetch. This prevents the server from sending all the tag refs. In chromium this prevents significant time bottlenecks dealing with 10k+ tags. 2. bot_update.py bot_update has to deal with multiple git repos, it has the root repo that is checked out through git-cache, as well as repos synched via DEPS and gclient. The script now takes a --no_fetch_tags option. If specified, the git-cache populate call will include --no-fetch-tags. Otherwise, it won't. So this controls (for chromium) if fetches to the src.git server are passed --no-tags. 3. bot_update/api.py This is the entry point for recipes and also has to deal with multiple git repos. The behaviour at this point is not changed from the default. A |no_fetch_tags| parameter is added to ensure_checkout() that defaults to False. This CL is a refactor with no intended behavior change. The next step will be to change the chromium build repo to pass True for ensure_checkout(no_fetch_tags) on chromium trybots. This represents solution #2 in https://docs.google.com/document/d/1hDIunJjjfpmr50y3YnZ4o3aq1NZF4gJa1TS0p7AIL64/edit# Bug: 1019824 Change-Id: I935430603299daa9e301a95a5184c0ce486fd912 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1894352Reviewed-by: Aaron Gable <agable@chromium.org> Reviewed-by: Erik Chen <erikchen@chromium.org> Commit-Queue: danakj <danakj@chromium.org> Auto-Submit: danakj <danakj@chromium.org>
c41f72cf