annotate tests/test_tags.py @ 1102:7635d30effa7

layouts: add importerror ladder so hgsubversion works as an installed module
author Augie Fackler <raf@durin42.com>
date Fri, 17 Jan 2014 11:07:58 -0500
parents 58b2d84df5e7
children 6e1dbf6cbc92
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
643
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 596
diff changeset
1 import test_util
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 596
diff changeset
2
521
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
3 import os, sys, cStringIO, difflib
23
1f8854804795 Add tests for tags and fix a bug in the tag-finding code that was found by the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
4 import unittest
1f8854804795 Add tests for tags and fix a bug in the tag-finding code that was found by the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
5
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
6 from mercurial import commands
23
1f8854804795 Add tests for tags and fix a bug in the tag-finding code that was found by the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
7 from mercurial import hg
1f8854804795 Add tests for tags and fix a bug in the tag-finding code that was found by the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
8 from mercurial import node
1f8854804795 Add tests for tags and fix a bug in the tag-finding code that was found by the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
9 from mercurial import ui
1f8854804795 Add tests for tags and fix a bug in the tag-finding code that was found by the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
10
474
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
11 from hgsubversion import svncommands
337
46e69be8e2c8 Reorganize to have a more conventional module structure.
Augie Fackler <durin42@gmail.com>
parents: 331
diff changeset
12 from hgsubversion import svnrepo
23
1f8854804795 Add tests for tags and fix a bug in the tag-finding code that was found by the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
13
91
7d10165cf3d9 tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents: 78
diff changeset
14 class TestTags(test_util.TestBase):
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
15 stupid_mode_tests = True
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
16
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
17 def test_tags(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
18 repo = self._load_fixture_and_fetch('basic_tag_tests.svndump')
376
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
19 self.assertEqual(sorted(repo.tags()), ['copied_tag', 'tag_r3', 'tip'])
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
20 self.assertEqual(repo['tag_r3'], repo['copied_tag'])
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
21 self.assertEqual(repo['tag_r3'].rev(), 1)
91
7d10165cf3d9 tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents: 78
diff changeset
22
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
23 def test_remove_tag(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
24 repo = self._load_fixture_and_fetch('remove_tag_test.svndump')
376
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
25 self.assertEqual(repo['tag_r3'].rev(), 1)
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
26 self.assert_('copied_tag' not in repo.tags())
91
7d10165cf3d9 tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents: 78
diff changeset
27
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
28 def test_rename_tag(self):
530
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
29 expected = """\
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
30 node: hg=default@2:svn=trunk@4
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
31 tagging r3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
32 tag_r3: hg=default@1:svn=trunk@3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
33
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
34 node: hg=default@3:svn=trunk@5
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
35 tag from a tag
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
36 tag_r3: hg=default@1:svn=trunk@3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
37 copied_tag: hg=default@1:svn=trunk@3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
38
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
39 node: hg=default@4:svn=trunk@6
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
40 rename a tag
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
41 tag_r3: hg=default@1:svn=trunk@3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
42 copied_tag: hg=default@1:svn=trunk@3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
43 copied_tag: hg=default@-1:svn=unk@unk
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
44 other_tag_r3: hg=default@1:svn=trunk@3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
45 """
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
46 self._test_tags('rename_tag_test.svndump', expected)
91
7d10165cf3d9 tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents: 78
diff changeset
47
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
48 def test_branch_from_tag(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
49 repo = self._load_fixture_and_fetch('branch_from_tag.svndump')
376
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
50 self.assert_('branch_from_tag' in repo.branchtags())
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
51 self.assertEqual(repo[1], repo['tag_r3'])
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
52 self.assertEqual(repo['branch_from_tag'].parents()[0], repo['copied_tag'])
91
7d10165cf3d9 tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents: 78
diff changeset
53
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
54 def test_tag_by_renaming_branch(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
55 repo = self._load_fixture_and_fetch('tag_by_rename_branch.svndump')
425
f5222d021665 tests: fix for new branch heads change in upstream hg.
Augie Fackler <durin42@gmail.com>
parents: 399
diff changeset
56 branches = set(repo[h] for h in repo.heads())
375
af9fc01299b4 Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 337
diff changeset
57 self.assert_('dummy' not in branches)
596
066453cf2014 test_tags: improve test output.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 573
diff changeset
58 self.assertEqual(repo['dummy'], repo['tip'].parents()[0],
066453cf2014 test_tags: improve test output.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 573
diff changeset
59 '%r != %r[0]' % (repo['dummy'],
066453cf2014 test_tags: improve test output.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 573
diff changeset
60 repo['tip'].parents()))
375
af9fc01299b4 Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 337
diff changeset
61 extra = repo['tip'].extra().copy()
af9fc01299b4 Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 337
diff changeset
62 extra.pop('convert_revision', None)
af9fc01299b4 Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 337
diff changeset
63 self.assertEqual(extra, {'branch': 'dummy', 'close': '1'})
91
7d10165cf3d9 tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents: 78
diff changeset
64
379
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
65 def test_deletion_of_tag_on_trunk_after_branching(self):
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
66 repo = self._load_fixture_and_fetch('tag_deletion_tag_branch.svndump')
425
f5222d021665 tests: fix for new branch heads change in upstream hg.
Augie Fackler <durin42@gmail.com>
parents: 399
diff changeset
67 branches = set(repo[h].extra()['branch'] for h in repo.heads())
379
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
68 self.assertEqual(branches, set(['default', 'from_2', ]))
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
69 self.assertEqual(
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
70 repo.tags(),
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
71 {'tip': 'g\xdd\xcd\x93\x03g\x1e\x7f\xa6-[V%\x99\x07\xd3\x9d>(\x94',
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
72 'new_tag': '=\xb8^\xb5\x18\xa9M\xdb\xf9\xb62Z\xa0\xb5R6+\xfe6.'})
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
73
381
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
74 def test_tags_in_unusual_location(self):
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
75 repo = self._load_fixture_and_fetch('unusual_tags.svndump')
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
76 branches = set(repo[h].extra()['branch']
425
f5222d021665 tests: fix for new branch heads change in upstream hg.
Augie Fackler <durin42@gmail.com>
parents: 399
diff changeset
77 for h in repo.heads())
381
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
78 self.assertEqual(branches, set(['default', 'dev_branch']))
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
79 tags = repo.tags()
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
80 del tags['tip']
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
81 self.assertEqual(
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
82 tags,
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
83 {'blah/trunktag': '\xd3$@\xd7\xd8Nu\xce\xa6%\xf1u\xd9b\x1a\xb2\x81\xc2\xb0\xb1',
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
84 'versions/branch_version': 'I\x89\x1c>z#\xfc._K#@:\xd6\x1f\x96\xd6\x83\x1b|',
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
85 })
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
86
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
87 def test_most_recent_is_edited(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
88 repo, repo_path = self.load_and_fetch('most-recent-is-edit-tag.svndump')
474
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
89 self.repo.ui.status(
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
90 "Note: this test failing may be because of a rebuildmeta failure.\n"
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
91 "You should check that before assuming issues with this test.\n")
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
92 wc2_path = self.wc_path + '2'
816
86d124a8768e Fix hg.clone() calls changed by d976542986d2
Patrick Mezard <pmezard@gmail.com>
parents: 643
diff changeset
93 src, dest = test_util.hgclone(repo.ui, self.wc_path, wc2_path, update=False)
930
5bacb9c63e3e Fix more peer breakage with old hg versions
Patrick Mezard <patrick@mezard.eu>
parents: 916
diff changeset
94 dest = test_util.getlocalpeer(dest)
474
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
95 svncommands.rebuildmeta(repo.ui,
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
96 dest,
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
97 args=[test_util.fileurl(repo_path), ])
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
98 commands.pull(self.repo.ui, self.repo)
474
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
99 dtags, srctags = dest.tags(), self.repo.tags()
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
100 dtags.pop('tip')
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
101 srctags.pop('tip')
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
102 self.assertEqual(dtags, srctags)
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
103 self.assertEqual(dest.heads(), self.repo.heads())
63cb630d667d tags: handle the most recent commit being an edit to an svn tag properly
Augie Fackler <durin42@gmail.com>
parents: 453
diff changeset
104
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
105 def test_edited_tag(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
106 repo = self._load_fixture_and_fetch('commit-to-tag.svndump')
547
9e6499c415a9 tags: fix files edited during tag creation
Augie Fackler <durin42@gmail.com>
parents: 545
diff changeset
107 headcount = 6
9e6499c415a9 tags: fix files edited during tag creation
Augie Fackler <durin42@gmail.com>
parents: 545
diff changeset
108 self.assertEqual(len(repo.heads()), headcount)
447
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
109 heads = repo.heads()
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
110 openheads = [h for h in heads if not repo[h].extra().get('close', False)]
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
111 closedheads = set(heads) - set(openheads)
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
112 self.assertEqual(len(openheads), 1)
832
e9af7eba88db globally: clean up whitespace around operators and commas to conform with PEP8
Yonggang Luo <luoyonggang@gmail.com>
parents: 816
diff changeset
113 self.assertEqual(len(closedheads), headcount - 1)
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
114 closedheads = sorted(list(closedheads),
832
e9af7eba88db globally: clean up whitespace around operators and commas to conform with PEP8
Yonggang Luo <luoyonggang@gmail.com>
parents: 816
diff changeset
115 cmp=lambda x, y: cmp(repo[x].rev(), repo[y].rev()))
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
116
452
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
117 # closeme has no open heads
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
118 for h in openheads:
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
119 self.assertNotEqual('closeme', repo[openheads[0]].branch())
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
120
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
121 self.assertEqual(1, len(self.repo.branchheads('magic')))
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
122
547
9e6499c415a9 tags: fix files edited during tag creation
Augie Fackler <durin42@gmail.com>
parents: 545
diff changeset
123 alsoedit, editlater, closeme, willedit, editcreate, = closedheads
447
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
124 self.assertEqual(
449
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
125 repo[willedit].extra(),
447
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
126 {'close': '1',
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
127 'branch': 'magic',
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
128 'convert_revision': 'svn:af82cc90-c2d2-43cd-b1aa-c8a78449440a/tags/will-edit@19'})
449
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
129 self.assertEqual(willedit, repo.tags()['will-edit'])
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
130 self.assertEqual(repo['will-edit'].manifest().keys(), ['alpha',
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
131 'beta',
447
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
132 'gamma',
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
133 ])
449
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
134 self.assertEqual(
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
135 repo[alsoedit].extra(),
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
136 {'close': '1',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
137 'branch': 'magic',
451
e533e78f1b2f tags: handle tags from edited tags.
Augie Fackler <durin42@gmail.com>
parents: 450
diff changeset
138 'convert_revision': 'svn:af82cc90-c2d2-43cd-b1aa-c8a78449440a/tags/also-edit@14'})
e533e78f1b2f tags: handle tags from edited tags.
Augie Fackler <durin42@gmail.com>
parents: 450
diff changeset
139 self.assertEqual(repo[alsoedit].parents()[0].node(), repo.tags()['also-edit'])
449
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
140 self.assertEqual(repo['also-edit'].manifest().keys(),
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
141 ['beta',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
142 '.hgtags',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
143 'delta',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
144 'alpha',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
145 'omega',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
146 'iota',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
147 'gamma',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
148 'lambda',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
149 ])
379
e1b23a6ca093 test_tags: Add a test that verifies tags get deleted properly even in the presence of somewhat odd branching.
Augie Fackler <durin42@gmail.com>
parents: 376
diff changeset
150
452
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
151 self.assertEqual(editlater, repo['edit-later'].node())
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
152 self.assertEqual(
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
153 repo[closeme].extra(),
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
154 {'close': '1',
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
155 'branch': 'closeme',
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
156 'convert_revision': 'svn:af82cc90-c2d2-43cd-b1aa-c8a78449440a/branches/closeme@17'})
547
9e6499c415a9 tags: fix files edited during tag creation
Augie Fackler <durin42@gmail.com>
parents: 545
diff changeset
157 self.assertEqual('alpha\nalpha\n', repo['edit-at-create']['alpha'].data())
452
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
158
389
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
159 def test_tags_in_unusual_location(self):
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
160 repo = self._load_fixture_and_fetch('tag_name_same_as_branch.svndump')
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
161 self.assertEqual(len(repo.heads()), 1)
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
162 branches = set(repo[h].extra()['branch']
425
f5222d021665 tests: fix for new branch heads change in upstream hg.
Augie Fackler <durin42@gmail.com>
parents: 399
diff changeset
163 for h in repo.heads())
389
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
164 self.assertEqual(branches, set(['magic', ]))
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
165 tags = repo.tags()
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
166 del tags['tip']
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
167 self.assertEqual(
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
168 tags,
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
169 {'magic': '\xa2b\xb9\x03\xc6\xbd\x903\x95\xf5\x0f\x94\xcey\xc4E\xfaE6\xaa',
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
170 'magic2': '\xa3\xa2D\x86aM\xc0v\xb9\xb0\x18\x14\xad\xacwBUi}\xe2',
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
171 })
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
172
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
173 def test_old_tag_map_rebuilds(self):
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
174 repo = self._load_fixture_and_fetch('tag_name_same_as_branch.svndump')
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
175 tm = os.path.join(repo.path, 'svn', 'tagmap')
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
176 open(tm, 'w').write('1\n')
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
177 commands.pull(repo.ui, repo)
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
178 self.assertEqual(open(tm).read().splitlines()[0], '2')
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
179
521
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
180 def _debug_print_tags(self, repo, ctx, fp):
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
181 def formatnode(ctx):
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
182 crev = ctx.extra().get('convert_revision', 'unk/unk@unk')
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
183 path, rev = crev.rsplit('@', 1)
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
184 path = path.split('/', 1)[-1]
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
185 branch = ctx.branch() or 'default'
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
186 return 'hg=%s@%d:svn=%s@%s' % (branch, ctx.rev(), path, rev)
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
187
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
188 w = fp.write
541
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
189 desc = ctx.description().splitlines()[0].strip()
521
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
190 if '.hgtags' not in ctx or not ctx['.hgtags'].data().strip():
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
191 return
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
192 w('node: %s\n' % formatnode(ctx))
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
193 w('%s\n' % desc)
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
194 for line in ctx['.hgtags'].data().splitlines(False):
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
195 node, name = line.split(None, 1)
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
196 w(' %s: %s\n' % (name, formatnode(repo[node])))
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
197 w('\n')
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
198
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
199 def _test_tags(self, testpath, expected):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
200 repo = self._load_fixture_and_fetch(testpath)
521
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
201 fp = cStringIO.StringIO()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
202 for r in repo:
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
203 self._debug_print_tags(repo, repo[r], fp=fp)
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
204 output = fp.getvalue().strip()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
205 expected = expected.strip()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
206 if expected == output:
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
207 return
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
208 expected = expected.splitlines()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
209 output = output.splitlines()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
210 diff = difflib.unified_diff(expected, output, 'expected', 'output')
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
211 self.assert_(False, '\n' + '\n'.join(diff))
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
212
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
213 def test_tagging_into_tag(self):
521
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
214 expected = """\
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
215 node: hg=test@2:svn=branches/test@4
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
216 First tag.
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
217 test-0.1: hg=test@1:svn=branches/test@3
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
218
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
219 node: hg=test@3:svn=branches/test@5
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
220 Weird tag.
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
221 test-0.1: hg=test@1:svn=branches/test@3
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
222 test-0.1/test: hg=test@1:svn=branches/test@3
541
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
223
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
224 node: hg=test@4:svn=branches/test@6
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
225 Fix tag pt 1.
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
226 test-0.1: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
227 test-0.1/test: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
228 test-0.1/test: hg=default@-1:svn=unk@unk
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
229 test-0.1-real: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
230
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
231 node: hg=test@5:svn=branches/test@7
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
232 Remove weird.
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
233 test-0.1: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
234 test-0.1/test: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
235 test-0.1/test: hg=default@-1:svn=unk@unk
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
236 test-0.1-real: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
237 test-0.1: hg=default@-1:svn=unk@unk
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
238
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
239 node: hg=test@6:svn=branches/test@8
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
240 Fix tag pt 2.
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
241 test-0.1: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
242 test-0.1/test: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
243 test-0.1/test: hg=default@-1:svn=unk@unk
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
244 test-0.1-real: hg=test@1:svn=branches/test@3
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
245 test-0.1: hg=default@-1:svn=unk@unk
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
246 test-0.1-real: hg=default@-1:svn=unk@unk
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
247 test-0.1: hg=test@1:svn=branches/test@3
521
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
248 """
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
249 self._test_tags('renametagdir.svndump', expected)