changeset 635:e2c3349b2cca

branchmap: map empty commits in replay mode.
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Sat, 10 Jul 2010 14:19:24 +0200
parents a400f3bf5611
children d4f433ee709a
files hgsubversion/replay.py tests/fixtures/propset-branch.svndump tests/test_fetch_mappings.py
diffstat 3 files changed, 163 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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),
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
+
+
--- 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)