summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--manifest_xml.py2
-rw-r--r--tests/test_manifest_xml.py20
2 files changed, 22 insertions, 0 deletions
diff --git a/manifest_xml.py b/manifest_xml.py
index eb8a98cc..e32551c8 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -403,6 +403,8 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md
403 revision = self.remotes[p.remote.orig_name].revision or d.revisionExpr 403 revision = self.remotes[p.remote.orig_name].revision or d.revisionExpr
404 if not revision or revision != p.revisionExpr: 404 if not revision or revision != p.revisionExpr:
405 e.setAttribute('revision', p.revisionExpr) 405 e.setAttribute('revision', p.revisionExpr)
406 elif p.revisionId:
407 e.setAttribute('revision', p.revisionId)
406 if (p.upstream and (p.upstream != p.revisionExpr or 408 if (p.upstream and (p.upstream != p.revisionExpr or
407 p.upstream != d.upstreamExpr)): 409 p.upstream != d.upstreamExpr)):
408 e.setAttribute('upstream', p.upstream) 410 e.setAttribute('upstream', p.upstream)
diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py
index 370eb4f5..5fd242fc 100644
--- a/tests/test_manifest_xml.py
+++ b/tests/test_manifest_xml.py
@@ -327,6 +327,26 @@ class XmlManifestTests(unittest.TestCase):
327 result['extras'], 327 result['extras'],
328 ['g1', 'g2', 'g1', 'name:extras', 'all', 'path:path']) 328 ['g1', 'g2', 'g1', 'name:extras', 'all', 'path:path'])
329 329
330 def test_project_set_revision_id(self):
331 """Check setting of project's revisionId."""
332 manifest = self.getXmlManifest("""
333<manifest>
334 <remote name="default-remote" fetch="http://localhost" />
335 <default remote="default-remote" revision="refs/heads/main" />
336 <project name="test-name"/>
337</manifest>
338""")
339 self.assertEqual(len(manifest.projects), 1)
340 project = manifest.projects[0]
341 project.SetRevisionId('ABCDEF')
342 self.assertEqual(
343 manifest.ToXml().toxml(),
344 '<?xml version="1.0" ?><manifest>' +
345 '<remote name="default-remote" fetch="http://localhost"/>' +
346 '<default remote="default-remote" revision="refs/heads/main"/>' +
347 '<project name="test-name" revision="ABCDEF"/>' +
348 '</manifest>')
349
330 def test_include_levels(self): 350 def test_include_levels(self):
331 root_m = os.path.join(self.manifest_dir, 'root.xml') 351 root_m = os.path.join(self.manifest_dir, 'root.xml')
332 with open(root_m, 'w') as fp: 352 with open(root_m, 'w') as fp: