diff options
author | Nasser Grainawi <nasser@codeaurora.org> | 2014-09-19 12:13:04 -0600 |
---|---|---|
committer | Kevin Degi <kdegi@codeaurora.org> | 2014-10-09 13:41:51 -0600 |
commit | 909d58b2e2e3695ecfa80a54b8700fb889a02677 (patch) | |
tree | 92056c473d30ec2e96a254a601b2dd37611dc364 /project.py | |
parent | 5cf16607d33268ab0320a886c4a7b5e052684fa4 (diff) | |
download | git-repo-909d58b2e2e3695ecfa80a54b8700fb889a02677.tar.gz |
Support specifying non-HEADS refs as upstream
While not typical, some users might have an upstream that isn't in
the usual refs/heads/* namespace. There's no reason not to use
those refs as the value for the upstream attribute, so support
doing so.
Change-Id: I5b119f1135c3268c20e7c4084682e860d3ee1fb1
Diffstat (limited to 'project.py')
-rw-r--r-- | project.py | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -1730,10 +1730,11 @@ class Project(object): | |||
1730 | if depth: | 1730 | if depth: |
1731 | current_branch_only = True | 1731 | current_branch_only = True |
1732 | 1732 | ||
1733 | if ID_RE.match(self.revisionExpr) is not None: | ||
1734 | is_sha1 = True | ||
1735 | |||
1733 | if current_branch_only: | 1736 | if current_branch_only: |
1734 | if ID_RE.match(self.revisionExpr) is not None: | 1737 | if self.revisionExpr.startswith(R_TAGS): |
1735 | is_sha1 = True | ||
1736 | elif self.revisionExpr.startswith(R_TAGS): | ||
1737 | # this is a tag and its sha1 value should never change | 1738 | # this is a tag and its sha1 value should never change |
1738 | tag_name = self.revisionExpr[len(R_TAGS):] | 1739 | tag_name = self.revisionExpr[len(R_TAGS):] |
1739 | 1740 | ||
@@ -1820,9 +1821,10 @@ class Project(object): | |||
1820 | branch = self.revisionExpr | 1821 | branch = self.revisionExpr |
1821 | if is_sha1: | 1822 | if is_sha1: |
1822 | branch = self.upstream | 1823 | branch = self.upstream |
1823 | if branch.startswith(R_HEADS): | 1824 | if branch is not None and branch.strip(): |
1824 | branch = branch[len(R_HEADS):] | 1825 | if not branch.startswith('refs/'): |
1825 | spec.append(str((u'+refs/heads/%s:' % branch) + remote.ToLocal('refs/heads/%s' % branch))) | 1826 | branch = R_HEADS + branch |
1827 | spec.append(str((u'+%s:' % branch) + remote.ToLocal(branch))) | ||
1826 | cmd.extend(spec) | 1828 | cmd.extend(spec) |
1827 | 1829 | ||
1828 | shallowfetch = self.config.GetString('repo.shallowfetch') | 1830 | shallowfetch = self.config.GetString('repo.shallowfetch') |