| Index: gclient_scm.py
|
| ===================================================================
|
| --- gclient_scm.py (revision 186973)
|
| +++ gclient_scm.py (working copy)
|
| @@ -655,6 +655,11 @@
|
| detach_head = True
|
| if options.verbose:
|
| clone_cmd.append('--verbose')
|
| + # Don't assume 'with_branch_heads' is added by 'gclient sync' setup, since
|
| + # _Clone() can by reached in roundabout ways (e.g. 'gclient revert').
|
| + if hasattr(options, 'with_branch_heads') and 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 +682,15 @@
|
| 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 (hasattr(options, 'with_branch_heads') and
|
| + 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.
|
|
|