• danakj's avatar
    Allow the bot_update api to not fetch tags from the git server. · c41f72cf
    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: 's avatarAaron Gable <agable@chromium.org>
    Reviewed-by: 's avatarErik Chen <erikchen@chromium.org>
    Commit-Queue: danakj <danakj@chromium.org>
    Auto-Submit: danakj <danakj@chromium.org>
    c41f72cf
git_cache_test.py 7.22 KB