# HG changeset patch # User Augie Fackler # Date 1224538793 18000 # Node ID 2d319e1625980d9eef18239b52c09cd9fc61c5ab # Parent c4523e6513257420db0c6c79e32228e8348fb703 Add a test that proves renaming a branch to make a tag works properly. diff --git a/tests/fixtures/tag_by_rename_branch.svndump b/tests/fixtures/tag_by_rename_branch.svndump new file mode 100644 --- /dev/null +++ b/tests/fixtures/tag_by_rename_branch.svndump @@ -0,0 +1,239 @@ +SVN-fs-dump-format-version: 2 + +UUID: df2126f7-00ab-4d49-b42c-7e981dde0bcf + +Revision-number: 0 +Prop-content-length: 56 +Content-length: 56 + +K 8 +svn:date +V 27 +2008-10-07T22:49:12.059692Z +PROPS-END + +Revision-number: 1 +Prop-content-length: 111 +Content-length: 111 + +K 7 +svn:log +V 11 +Empty dirs. +K 10 +svn:author +V 5 +durin +K 8 +svn:date +V 27 +2008-10-07T22:49:41.118037Z +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: 108 +Content-length: 108 + +K 7 +svn:log +V 9 +Add alpha +K 10 +svn:author +V 5 +durin +K 8 +svn:date +V 27 +2008-10-07T23:23:02.991743Z +PROPS-END + +Node-path: trunk/alpha +Node-kind: file +Node-action: add +Prop-content-length: 10 +Text-content-length: 12 +Text-content-md5: 3c72ebf8bbd7fa88b1fdcee5398b5a17 +Content-length: 22 + +PROPS-END +file: alpha + + +Revision-number: 3 +Prop-content-length: 107 +Content-length: 107 + +K 7 +svn:log +V 8 +Add beta +K 10 +svn:author +V 5 +durin +K 8 +svn:date +V 27 +2008-10-07T23:28:22.651398Z +PROPS-END + +Node-path: trunk/beta +Node-kind: file +Node-action: add +Prop-content-length: 10 +Text-content-length: 13 +Text-content-md5: 981d1eb5fd0bbe05354c292105944863 +Content-length: 23 + +PROPS-END +Data of beta + + +Revision-number: 4 +Prop-content-length: 110 +Content-length: 110 + +K 7 +svn:log +V 10 +tagging r3 +K 10 +svn:author +V 5 +durin +K 8 +svn:date +V 27 +2008-10-08T23:18:29.837825Z +PROPS-END + +Node-path: tags/tag_r3 +Node-kind: dir +Node-action: add +Node-copyfrom-rev: 3 +Node-copyfrom-path: trunk +Prop-content-length: 34 +Content-length: 34 + +K 13 +svn:mergeinfo +V 0 + +PROPS-END + + +Revision-number: 5 +Prop-content-length: 114 +Content-length: 114 + +K 7 +svn:log +V 14 +tag from a tag +K 10 +svn:author +V 5 +durin +K 8 +svn:date +V 27 +2008-10-08T23:18:51.091356Z +PROPS-END + +Node-path: tags/copied_tag +Node-kind: dir +Node-action: add +Node-copyfrom-rev: 4 +Node-copyfrom-path: tags/tag_r3 + + +Revision-number: 6 +Prop-content-length: 113 +Content-length: 113 + +K 7 +svn:log +V 13 +make a branch +K 10 +svn:author +V 5 +Augie +K 8 +svn:date +V 27 +2008-10-20T21:31:18.706649Z +PROPS-END + +Node-path: branches/dummy +Node-kind: dir +Node-action: add +Node-copyfrom-rev: 5 +Node-copyfrom-path: trunk +Prop-content-length: 34 +Content-length: 34 + +K 13 +svn:mergeinfo +V 0 + +PROPS-END + + +Revision-number: 7 +Prop-content-length: 118 +Content-length: 118 + +K 7 +svn:log +V 18 +make a tag with mv +K 10 +svn:author +V 5 +Augie +K 8 +svn:date +V 27 +2008-10-20T21:31:41.138126Z +PROPS-END + +Node-path: branches/dummy +Node-action: delete + + +Node-path: tags/dummy +Node-kind: dir +Node-action: add +Node-copyfrom-rev: 6 +Node-copyfrom-path: branches/dummy + + diff --git a/tests/test_tags.py b/tests/test_tags.py --- a/tests/test_tags.py +++ b/tests/test_tags.py @@ -82,6 +82,19 @@ class TestTags(unittest.TestCase): def test_branch_from_tag_stupid(self): self.test_branch_from_tag(stupid=True) + + def test_tag_by_renaming_branch(self, stupid=False): + repo = self._load_fixture_and_fetch('tag_by_rename_branch.svndump', + stupid=stupid) + svncommand.generate_hg_tags(ui.ui(), self.wc_path) + repo = hg.repository(ui.ui(), self.wc_path) + self.assertEqual(node.hex(repo['tip'].node()), + '1b941f92acc343939274bd8bbf25984fa9706bb9') + self.assertEqual(node.hex(repo['tag/dummy'].node()), + '68f5f7d82b00a2efe3aca28b615ebab98235d55f') + + def test_tag_by_renaming_branch_stupid(self): + self.test_tag_by_renaming_branch(stupid=True) def suite(): return unittest.TestLoader().loadTestsFromTestCase(TestTags)