Commit 4433ad0e authored by mmoss@chromium.org's avatar mmoss@chromium.org

Add option to automatically fetch git "branch-heads".

The "branch-heads" are refspecs created from upstream svn branches. This flag
is mostly needed for official builders, and adds about 1/2GB of data to the
checkout, so not currently enabling by default.
Review URL: https://codereview.chromium.org/12546017

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@186598 0039d316-1c4b-4281-b951-d872f2087c98
parent 4c7ce992
......@@ -1476,6 +1476,10 @@ def CMDsync(parser, args):
'has multiple solutions configured and will work even '
'if the src@ part is skipped. Note that specifying '
'--revision means your safesync_url gets ignored.')
parser.add_option('--with_branch_heads', action='store_true',
help='Clone git "branch_heads" refspecs in addition to '
'the default refspecs. This adds about 1/2GB to a '
'full checkout. (git only)')
parser.add_option('-t', '--transitive', action='store_true',
help='When a revision is specified (in the DEPS file or '
'with the command-line flag), transitively update '
......
......@@ -655,6 +655,9 @@ class GitWrapper(SCMWrapper):
detach_head = True
if options.verbose:
clone_cmd.append('--verbose')
if options.with_branch_heads:
clone_cmd.extend(['--config', 'remote.origin.fetch=+refs/branch-heads/*:'
'refs/remotes/branch-heads/*'])
clone_cmd.extend([url, self.checkout_path])
# If the parent directory does not exist, Git clone on Windows will not
......@@ -677,6 +680,14 @@ class GitWrapper(SCMWrapper):
try:
self._Run(clone_cmd, options, cwd=self._root_dir, filter_fn=_GitFilter,
print_stdout=False)
# Update the "branch-heads" remote-tracking branches, since clone
# doesn't automatically fetch those, and we might need it to checkout a
# specific revision below.
if options.with_branch_heads:
fetch_cmd = ['fetch', 'origin']
if options.verbose:
fetch_cmd.append('--verbose')
self._Run(fetch_cmd, options)
break
except subprocess2.CalledProcessError, e:
# Too bad we don't have access to the actual output yet.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment