# HG changeset patch # User Dan Villiom Podlaski Christiansen # Date 1278764364 -7200 # Node ID e2c3349b2cca4823e3de84a74b7d2db4ef91d7e5 # Parent a400f3bf56113d312ce62a7df4e33aa20da7482d branchmap: map empty commits in replay mode. diff --git a/hgsubversion/replay.py b/hgsubversion/replay.py --- a/hgsubversion/replay.py +++ b/hgsubversion/replay.py @@ -198,9 +198,7 @@ def convert_rev(ui, meta, svn, r, tbdelt 'Please report this issue.') extra = meta.genextra(rev.revnum, branch) - - if not meta.usebranchnames: - extra.pop('branch', None) + meta.mapbranch(extra) current_ctx = context.memctx(meta.repo, (ha, node.nullid), diff --git a/tests/fixtures/propset-branch.svndump b/tests/fixtures/propset-branch.svndump new file mode 100644 --- /dev/null +++ b/tests/fixtures/propset-branch.svndump @@ -0,0 +1,145 @@ +SVN-fs-dump-format-version: 2 + +UUID: 6506bfb9-9ce8-4b91-8357-4dc8bef2ecc6 + +Revision-number: 0 +Prop-content-length: 56 +Content-length: 56 + +K 8 +svn:date +V 27 +2010-07-10T11:55:08.483993Z +PROPS-END + +Revision-number: 1 +Prop-content-length: 122 +Content-length: 122 + +K 7 +svn:log +V 21 +create initial layout +K 10 +svn:author +V 6 +danchr +K 8 +svn:date +V 27 +2010-07-10T11:55:57.419315Z +PROPS-END + +Node-path: branches +Node-kind: dir +Node-action: add +Prop-content-length: 10 +Content-length: 10 + +PROPS-END + + +Node-path: tags +Node-kind: dir +Node-action: add +Prop-content-length: 10 +Content-length: 10 + +PROPS-END + + +Node-path: trunk +Node-kind: dir +Node-action: add +Prop-content-length: 10 +Content-length: 10 + +PROPS-END + + +Revision-number: 2 +Prop-content-length: 111 +Content-length: 111 + +K 7 +svn:log +V 10 +add a file +K 10 +svn:author +V 6 +danchr +K 8 +svn:date +V 27 +2010-07-10T11:56:54.708286Z +PROPS-END + +Node-path: trunk/a.txt +Node-kind: file +Node-action: add +Prop-content-length: 10 +Text-content-length: 0 +Text-content-md5: d41d8cd98f00b204e9800998ecf8427e +Text-content-sha1: da39a3ee5e6b4b0d3255bfef95601890afd80709 +Content-length: 10 + +PROPS-END + + +Revision-number: 3 +Prop-content-length: 116 +Content-length: 116 + +K 7 +svn:log +V 15 +create a branch +K 10 +svn:author +V 6 +danchr +K 8 +svn:date +V 27 +2010-07-10T11:57:29.710978Z +PROPS-END + +Node-path: branches/the-branch +Node-kind: dir +Node-action: add +Node-copyfrom-rev: 2 +Node-copyfrom-path: trunk + + +Revision-number: 4 +Prop-content-length: 115 +Content-length: 115 + +K 7 +svn:log +V 14 +set a property +K 10 +svn:author +V 6 +danchr +K 8 +svn:date +V 27 +2010-07-10T11:58:41.440627Z +PROPS-END + +Node-path: branches/the-branch +Node-kind: dir +Node-action: change +Prop-content-length: 42 +Content-length: 42 + +K 12 +the-property +V 9 +something +PROPS-END + + diff --git a/tests/test_fetch_mappings.py b/tests/test_fetch_mappings.py --- a/tests/test_fetch_mappings.py +++ b/tests/test_fetch_mappings.py @@ -134,5 +134,22 @@ class MapTests(test_util.TestBase): def test_branchmap_tagging_stupid(self): self.test_branchmap_tagging(True) + def test_branchmap_empty_commit(self, stupid=False): + '''test mapping an empty commit on a renamed branch''' + test_util.load_svndump_fixture(self.repo_path, 'propset-branch.svndump') + branchmap = open(self.branchmap, 'w') + branchmap.write("the-branch = bob\n") + branchmap.close() + ui = self.ui(stupid) + ui.setconfig('hgsubversion', 'branchmap', self.branchmap) + commands.clone(ui, test_util.fileurl(self.repo_path), + self.wc_path, branchmap=self.branchmap) + branches = set(self.repo[i].branch() for i in self.repo) + self.assertEquals(sorted(branches), ['bob', 'default']) + + def test_branchmap_empty_commit_stupid(self): + '''test mapping an empty commit on a renamed branch (stupid)''' + self.test_branchmap_empty_commit(True) + def suite(): return unittest.TestLoader().loadTestsFromTestCase(MapTests)