mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-01-06 16:14:25 +00:00
Merge changes I1f71be22,I5b119f11
* changes: Always fetch the specific revision given Support specifying non-HEADS refs as upstream
This commit is contained in:
commit
7893b85509
@ -244,7 +244,7 @@ whole ref space.
|
|||||||
|
|
||||||
Attribute `sync-s`: Set to true to also sync sub-projects.
|
Attribute `sync-s`: Set to true to also sync sub-projects.
|
||||||
|
|
||||||
Attribute `upstream`: Name of the Git branch in which a sha1
|
Attribute `upstream`: Name of the Git ref in which a sha1
|
||||||
can be found. Used when syncing a revision locked manifest in
|
can be found. Used when syncing a revision locked manifest in
|
||||||
-c mode to avoid having to sync the entire ref space.
|
-c mode to avoid having to sync the entire ref space.
|
||||||
|
|
||||||
|
@ -619,8 +619,6 @@ class Remote(object):
|
|||||||
"""
|
"""
|
||||||
if IsId(rev):
|
if IsId(rev):
|
||||||
return rev
|
return rev
|
||||||
if rev.startswith(R_TAGS):
|
|
||||||
return rev
|
|
||||||
|
|
||||||
if not rev.startswith('refs/'):
|
if not rev.startswith('refs/'):
|
||||||
rev = R_HEADS + rev
|
rev = R_HEADS + rev
|
||||||
@ -628,6 +626,10 @@ class Remote(object):
|
|||||||
for spec in self.fetch:
|
for spec in self.fetch:
|
||||||
if spec.SourceMatches(rev):
|
if spec.SourceMatches(rev):
|
||||||
return spec.MapSource(rev)
|
return spec.MapSource(rev)
|
||||||
|
|
||||||
|
if not rev.startswith(R_HEADS):
|
||||||
|
return rev
|
||||||
|
|
||||||
raise GitError('remote %s does not have %s' % (self.name, rev))
|
raise GitError('remote %s does not have %s' % (self.name, rev))
|
||||||
|
|
||||||
def WritesTo(self, ref):
|
def WritesTo(self, ref):
|
||||||
|
22
project.py
22
project.py
@ -1752,10 +1752,11 @@ class Project(object):
|
|||||||
if depth:
|
if depth:
|
||||||
current_branch_only = True
|
current_branch_only = True
|
||||||
|
|
||||||
|
if ID_RE.match(self.revisionExpr) is not None:
|
||||||
|
is_sha1 = True
|
||||||
|
|
||||||
if current_branch_only:
|
if current_branch_only:
|
||||||
if ID_RE.match(self.revisionExpr) is not None:
|
if self.revisionExpr.startswith(R_TAGS):
|
||||||
is_sha1 = True
|
|
||||||
elif self.revisionExpr.startswith(R_TAGS):
|
|
||||||
# this is a tag and its sha1 value should never change
|
# this is a tag and its sha1 value should never change
|
||||||
tag_name = self.revisionExpr[len(R_TAGS):]
|
tag_name = self.revisionExpr[len(R_TAGS):]
|
||||||
|
|
||||||
@ -1838,13 +1839,14 @@ class Project(object):
|
|||||||
elif tag_name is not None:
|
elif tag_name is not None:
|
||||||
spec.append('tag')
|
spec.append('tag')
|
||||||
spec.append(tag_name)
|
spec.append(tag_name)
|
||||||
else:
|
|
||||||
branch = self.revisionExpr
|
branch = self.revisionExpr
|
||||||
if is_sha1:
|
if is_sha1:
|
||||||
branch = self.upstream
|
branch = self.upstream
|
||||||
if branch.startswith(R_HEADS):
|
if branch is not None and branch.strip():
|
||||||
branch = branch[len(R_HEADS):]
|
if not branch.startswith('refs/'):
|
||||||
spec.append(str((u'+refs/heads/%s:' % branch) + remote.ToLocal('refs/heads/%s' % branch)))
|
branch = R_HEADS + branch
|
||||||
|
spec.append(str((u'+%s:' % branch) + remote.ToLocal(branch)))
|
||||||
cmd.extend(spec)
|
cmd.extend(spec)
|
||||||
|
|
||||||
shallowfetch = self.config.GetString('repo.shallowfetch')
|
shallowfetch = self.config.GetString('repo.shallowfetch')
|
||||||
|
Loading…
Reference in New Issue
Block a user