From af908cb5438ec3c03a9a32d1a9f286aa5657ff88 Mon Sep 17 00:00:00 2001 From: Sean McAllister Date: Mon, 20 Apr 2020 08:41:58 -0600 Subject: 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 Reviewed-by: Mike Frysinger --- manifest_xml.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'manifest_xml.py') 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 def _ParseGroups(self, groups): return [x for x in re.split(r'[,\s]+', groups) if x] - def Save(self, fd, peg_rev=False, peg_rev_upstream=True, groups=None): + def Save(self, fd, peg_rev=False, peg_rev_upstream=True, peg_rev_dest_branch=True, groups=None): """Write the current manifest out to the given file descriptor. """ mp = self.manifestProject @@ -389,6 +389,13 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md # Only save the origin if the origin is not a sha1, and the default # isn't our value e.setAttribute('upstream', p.revisionExpr) + + if peg_rev_dest_branch: + if p.dest_branch: + e.setAttribute('dest-branch', p.dest_branch) + elif value != p.revisionExpr: + e.setAttribute('dest-branch', p.revisionExpr) + else: revision = self.remotes[p.remote.orig_name].revision or d.revisionExpr if not revision or revision != p.revisionExpr: -- cgit v1.2.3-54-g00ecf