• iannucci@chromium.org's avatar
    Add a git cache for gclient sync operations. · 53456aa2
    iannucci@chromium.org authored
    Instead of cloning straight into place, clones are made to a global cache dir,
    and then local (using --shared) clones are made from the cache to the final
    resting place. This means the 'final' clones are full repos with no shenanigans,
    meaning that branches, commits, etc. all work, which should allow the rest of
    the gclient ecosystem to work without change as well.
    
    The primary benefit is, of course, reduced network IO, and a much lower cost for
    'clobber' operations (assuming we don't clobber the cache). It also means that
    a given bot can have a greater number of checkouts, since the entire git history
    will only be stored once per machine, instead of once per checkout.
    
    R=dpranke@chromium.org, szager@chromium.org
    BUG=
    
    Review URL: https://chromiumcodereview.appspot.com/18328003
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@210024 0039d316-1c4b-4281-b951-d872f2087c98
    53456aa2
gclient.py 69.6 KB