Index: gclient_scm.py |
diff --git a/gclient_scm.py b/gclient_scm.py |
index f5a434b1edaada44cfcc93e64cf897f2d3ca5ae7..7dc0bd8018693859b15529b74ba0fb747973c5fe 100644 |
--- a/gclient_scm.py |
+++ b/gclient_scm.py |
@@ -188,6 +188,7 @@ class GitFilter(object): |
class GitWrapper(SCMWrapper): |
"""Wrapper for Git""" |
name = 'git' |
+ remote = 'origin' |
cache_dir = None |
# If a given cache is used in a solution more than once, prevent multiple |
@@ -230,7 +231,7 @@ class GitWrapper(SCMWrapper): |
""" |
def diff(self, options, _args, _file_list): |
- merge_base = self._Capture(['merge-base', 'HEAD', 'origin']) |
+ merge_base = self._Capture(['merge-base', 'HEAD', self.remote]) |
self._Run(['diff', merge_base], options) |
def pack(self, _options, _args, _file_list): |
@@ -240,7 +241,7 @@ class GitWrapper(SCMWrapper): |
The patch file is generated from a diff of the merge base of HEAD and |
its upstream branch. |
""" |
- merge_base = self._Capture(['merge-base', 'HEAD', 'origin']) |
+ merge_base = self._Capture(['merge-base', 'HEAD', self.remote]) |
gclient_utils.CheckCallAndFilter( |
['git', 'diff', merge_base], |
cwd=self.checkout_path, |
@@ -280,7 +281,7 @@ class GitWrapper(SCMWrapper): |
self._UpdateBranchHeads(options, fetch=False) |
fetch_cmd = [ |
- '-c', 'core.deltaBaseCacheLimit=2g', 'fetch', 'origin', '--prune'] |
+ '-c', 'core.deltaBaseCacheLimit=2g', 'fetch', self.remote, '--prune'] |
self._Run(fetch_cmd + quiet, options, retry=True) |
self._Run(['reset', '--hard', revision] + quiet, options) |
self.UpdateSubmoduleConfig() |
@@ -301,7 +302,8 @@ class GitWrapper(SCMWrapper): |
self._CheckMinVersion("1.6.6") |
- default_rev = "refs/heads/master" |
+ # If a dependency is not pinned, track the default remote branch. |
+ default_rev = 'refs/remotes/%s/master' % self.remote |
url, deps_revision = gclient_utils.SplitUrlRevision(self.url) |
rev_str = "" |
revision = deps_revision |
@@ -337,9 +339,9 @@ class GitWrapper(SCMWrapper): |
if revision.startswith('refs/'): |
rev_type = "branch" |
- elif revision.startswith('origin/'): |
- # For compatability with old naming, translate 'origin' to 'refs/heads' |
- revision = revision.replace('origin/', 'refs/heads/') |
+ elif revision.startswith(self.remote + '/'): |
+ # For compatibility with old naming, translate 'origin' to 'refs/heads' |
+ revision = revision.replace(self.remote + '/', 'refs/heads/') |
rev_type = "branch" |
else: |
# hash is also a tag, only make a distinction at checkout |
@@ -375,7 +377,7 @@ class GitWrapper(SCMWrapper): |
# See if the url has changed (the unittests use git://foo for the url, let |
# that through). |
- current_url = self._Capture(['config', 'remote.origin.url']) |
+ current_url = self._Capture(['config', 'remote.%s.url' % self.remote]) |
return_early = False |
# TODO(maruel): Delete url != 'git://foo' since it's just to make the |
# unit test pass. (and update the comment above) |
@@ -385,13 +387,13 @@ class GitWrapper(SCMWrapper): |
if (current_url != url and |
url != 'git://foo' and |
subprocess2.capture( |
- ['git', 'config', 'remote.origin.gclient-auto-fix-url'], |
+ ['git', 'config', 'remote.%s.gclient-auto-fix-url' % self.remote], |
cwd=self.checkout_path).strip() != 'False'): |
print('_____ switching %s to a new upstream' % self.relpath) |
# Make sure it's clean |
self._CheckClean(rev_str) |
# Switch over to the new upstream |
- self._Run(['remote', 'set-url', 'origin', url], options) |
+ self._Run(['remote', 'set-url', self.remote, url], options) |
self._FetchAndReset(revision, file_list, options) |
return_early = True |
@@ -473,7 +475,7 @@ class GitWrapper(SCMWrapper): |
# Can't find a merge-base since we don't know our upstream. That makes |
# this command VERY likely to produce a rebase failure. For now we |
# assume origin is our upstream since that's what the old behavior was. |
- upstream_branch = 'origin' |
+ upstream_branch = self.remote |
if options.revision or deps_revision: |
upstream_branch = revision |
self._AttemptRebase(upstream_branch, files, options, |
@@ -484,9 +486,9 @@ class GitWrapper(SCMWrapper): |
self._AttemptRebase(upstream_branch, files, options, |
newbase=revision, printed_path=printed_path) |
printed_path = True |
- elif revision.replace('heads', 'remotes/origin') != upstream_branch: |
+ elif revision.replace('heads', 'remotes/' + self.remote) != upstream_branch: |
# case 4 |
- new_base = revision.replace('heads', 'remotes/origin') |
+ new_base = revision.replace('heads', 'remotes/' + self.remote) |
if not printed_path: |
print('\n_____ %s%s' % (self.relpath, rev_str)) |
switch_error = ("Switching upstream branch from %s to %s\n" |
@@ -613,7 +615,7 @@ class GitWrapper(SCMWrapper): |
if not deps_revision: |
deps_revision = default_rev |
if deps_revision.startswith('refs/heads/'): |
- deps_revision = deps_revision.replace('refs/heads/', 'origin/') |
+ deps_revision = deps_revision.replace('refs/heads/', self.remote + '/') |
if file_list is not None: |
files = self._Capture(['diff', deps_revision, '--name-only']).split() |
@@ -637,7 +639,7 @@ class GitWrapper(SCMWrapper): |
print(('\n________ couldn\'t run status in %s:\n' |
'The directory does not exist.') % self.checkout_path) |
else: |
- merge_base = self._Capture(['merge-base', 'HEAD', 'origin']) |
+ merge_base = self._Capture(['merge-base', 'HEAD', self.remote]) |
self._Run(['diff', '--name-status', merge_base], options) |
if file_list is not None: |
files = self._Capture(['diff', '--name-only', merge_base]).split() |
@@ -695,7 +697,7 @@ class GitWrapper(SCMWrapper): |
else: |
# May exist in origin, but we don't have it yet, so fetch and look |
# again. |
- scm.GIT.Capture(['fetch', 'origin'], cwd=self.checkout_path) |
+ scm.GIT.Capture(['fetch', self.remote], cwd=self.checkout_path) |
if scm.GIT.IsValidRevision(cwd=self.checkout_path, rev=rev): |
sha1 = rev |
@@ -807,7 +809,7 @@ class GitWrapper(SCMWrapper): |
# to relax this restriction in the future to allow for smarter cache |
# repo update schemes (such as pulling the same repo, but from a |
# different host). |
- existing_url = self._Capture(['config', 'remote.origin.url'], |
+ existing_url = self._Capture(['config', 'remote.%s.url' % self.remote], |
cwd=folder) |
assert self._NormalizeGitURL(existing_url) == self._NormalizeGitURL(url) |
@@ -874,8 +876,8 @@ class GitWrapper(SCMWrapper): |
print( |
('Checked out %s to a detached HEAD. Before making any commits\n' |
'in this repo, you should use \'git checkout <branch>\' to switch to\n' |
- 'an existing branch or use \'git checkout origin -b <branch>\' to\n' |
- 'create a new branch for your work.') % revision) |
+ 'an existing branch or use \'git checkout %s -b <branch>\' to\n' |
+ 'create a new branch for your work.') % (revision, self.remote)) |
def _AttemptRebase(self, upstream, files, options, newbase=None, |
branch=None, printed_path=False): |
@@ -1024,12 +1026,12 @@ class GitWrapper(SCMWrapper): |
def _UpdateBranchHeads(self, options, fetch=False): |
"""Adds, and optionally fetches, "branch-heads" refspecs if requested.""" |
if hasattr(options, 'with_branch_heads') and options.with_branch_heads: |
- config_cmd = ['config', 'remote.origin.fetch', |
+ config_cmd = ['config', 'remote.%s.fetch' % self.remote, |
'+refs/branch-heads/*:refs/remotes/branch-heads/*', |
'^\\+refs/branch-heads/\\*:.*$'] |
self._Run(config_cmd, options) |
if fetch: |
- fetch_cmd = ['-c', 'core.deltaBaseCacheLimit=2g', 'fetch', 'origin'] |
+ fetch_cmd = ['-c', 'core.deltaBaseCacheLimit=2g', 'fetch', self.remote] |
if options.verbose: |
fetch_cmd.append('--verbose') |
self._Run(fetch_cmd, options, retry=True) |