summaryrefslogtreecommitdiffstats
path: root/manifest_xml.py
diff options
context:
space:
mode:
authorSean McAllister <smcallis@google.com>2020-04-20 08:41:58 -0600
committerSean McAllister <smcallis@google.com>2020-04-20 16:35:02 +0000
commitaf908cb5438ec3c03a9a32d1a9f286aa5657ff88 (patch)
tree6d02df8ce08d244716807f842b4058c965bda5fd /manifest_xml.py
parent74e8ed4bde37a3ce42579e4601e0a54120853c89 (diff)
downloadgit-repo-af908cb5438ec3c03a9a32d1a9f286aa5657ff88.tar.gz
When writing manifest, set the dest-branch attribute for projects
When generating a revision locked manifest, we need to know what ref to push changes to when doing 'repo upload'. This information is lost when we lock the revision attribute to a particular commit hash, so we need to expose it through the dest-branch attribute. Bug: https://crbug.com/1005103 Test: manual execution Change-Id: Ib31fd77ad8c9379759c4181dac1ea97de43eec35 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/263572 Tested-by: Sean McAllister <smcallis@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
Diffstat (limited to 'manifest_xml.py')
-rw-r--r--manifest_xml.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/manifest_xml.py b/manifest_xml.py
index edcbadae..b2918cac 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -284,7 +284,7 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md
284 def _ParseGroups(self, groups): 284 def _ParseGroups(self, groups):
285 return [x for x in re.split(r'[,\s]+', groups) if x] 285 return [x for x in re.split(r'[,\s]+', groups) if x]
286 286
287 def Save(self, fd, peg_rev=False, peg_rev_upstream=True, groups=None): 287 def Save(self, fd, peg_rev=False, peg_rev_upstream=True, peg_rev_dest_branch=True, groups=None):
288 """Write the current manifest out to the given file descriptor. 288 """Write the current manifest out to the given file descriptor.
289 """ 289 """
290 mp = self.manifestProject 290 mp = self.manifestProject
@@ -389,6 +389,13 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md
389 # Only save the origin if the origin is not a sha1, and the default 389 # Only save the origin if the origin is not a sha1, and the default
390 # isn't our value 390 # isn't our value
391 e.setAttribute('upstream', p.revisionExpr) 391 e.setAttribute('upstream', p.revisionExpr)
392
393 if peg_rev_dest_branch:
394 if p.dest_branch:
395 e.setAttribute('dest-branch', p.dest_branch)
396 elif value != p.revisionExpr:
397 e.setAttribute('dest-branch', p.revisionExpr)
398
392 else: 399 else:
393 revision = self.remotes[p.remote.orig_name].revision or d.revisionExpr 400 revision = self.remotes[p.remote.orig_name].revision or d.revisionExpr
394 if not revision or revision != p.revisionExpr: 401 if not revision or revision != p.revisionExpr: