annotate tests/test_tags.py @ 1333:7475c42671b1 stable

util: add prefix to PrefixMatch The upstream match object now has a prefix function. Let's add it to our PrefixMatcher. The upstream implementation will return False if anypats() is true, which it is for our PrefixMatcher, so we go ahead and return False. This was caught by the tests failing.
author Durham Goode <durham@fb.com>
date Thu, 28 May 2015 20:18:50 -0700
parents a36e87ae2380
children ab15749252b0 253b2ab253a1
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
1103
6e1dbf6cbc92 compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents: 1076
diff changeset
11 from hgsubversion import compathacks
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
12 from hgsubversion import svncommands
337
46e69be8e2c8 Reorganize to have a more conventional module structure.
Augie Fackler <durin42@gmail.com>
parents: 331
diff changeset
13 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
14
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
15 class TestTags(test_util.TestBase):
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
16 stupid_mode_tests = True
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
17
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
18 def test_tags(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
19 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
20 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
21 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
22 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
23
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
24 def test_remove_tag(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
25 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
26 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
27 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
28
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
29 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
30 expected = """\
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
31 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
32 tagging r3
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
33 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
34
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
35 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
36 tag from a tag
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
37 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
38 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
39
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
40 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
41 rename a tag
76e9504db03b test_tags: rewrite both the test and the fixture script
Patrick Mezard <pmezard@gmail.com>
parents: 521
diff changeset
42 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
43 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
44 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
45 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
46 """
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
47 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
48
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
49 def test_branch_from_tag(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
50 repo = self._load_fixture_and_fetch('branch_from_tag.svndump')
1103
6e1dbf6cbc92 compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents: 1076
diff changeset
51 self.assert_('branch_from_tag' in compathacks.branchset(repo))
376
9327e9325645 Use tbdelta to push added tags into .hgtags.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 375
diff changeset
52 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
53 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
54
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
55 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
56 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
57 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
58 self.assert_('dummy' not in branches)
596
066453cf2014 test_tags: improve test output.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 573
diff changeset
59 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
60 '%r != %r[0]' % (repo['dummy'],
066453cf2014 test_tags: improve test output.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 573
diff changeset
61 repo['tip'].parents()))
375
af9fc01299b4 Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 337
diff changeset
62 extra = repo['tip'].extra().copy()
af9fc01299b4 Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 337
diff changeset
63 extra.pop('convert_revision', None)
af9fc01299b4 Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 337
diff changeset
64 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
65
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
66 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
67 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
68 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
69 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
70 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
71 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
72 {'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
73 '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
74
381
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
75 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
76 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
77 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
78 for h in repo.heads())
381
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
79 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
80 tags = repo.tags()
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
81 del tags['tip']
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
82 self.assertEqual(
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
83 tags,
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
84 {'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
85 '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
86 })
a441ba143ac8 tags: fix handling for certain nonstandard tag layouts.
Augie Fackler <durin42@gmail.com>
parents: 379
diff changeset
87
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
88 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
89 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
90 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
91 "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
92 "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
93 wc2_path = self.wc_path + '2'
816
86d124a8768e Fix hg.clone() calls changed by d976542986d2
Patrick Mezard <pmezard@gmail.com>
parents: 643
diff changeset
94 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
95 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
96 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
97 dest,
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
98 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
99 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
100 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
101 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
102 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
103 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
104 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
105
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
106 def test_edited_tag(self):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
107 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
108 headcount = 6
9e6499c415a9 tags: fix files edited during tag creation
Augie Fackler <durin42@gmail.com>
parents: 545
diff changeset
109 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
110 heads = repo.heads()
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
111 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
112 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
113 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
114 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
115 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
116 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
117
452
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
118 # 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
119 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
120 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
121
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
122 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
123
547
9e6499c415a9 tags: fix files edited during tag creation
Augie Fackler <durin42@gmail.com>
parents: 545
diff changeset
124 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
125 self.assertEqual(
449
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
126 repo[willedit].extra(),
447
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
127 {'close': '1',
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
128 'branch': 'magic',
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
129 '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
130 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
131 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
132 'beta',
447
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
133 'gamma',
0d3b5acb1d51 tags: handle edits to tags as gracefully as possible
Augie Fackler <durin42@gmail.com>
parents: 425
diff changeset
134 ])
449
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
135 self.assertEqual(
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
136 repo[alsoedit].extra(),
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
137 {'close': '1',
bda5b47ad2a2 tags: handle editing a tag and its source branch simultaneously
Augie Fackler <durin42@gmail.com>
parents: 447
diff changeset
138 'branch': 'magic',
451
e533e78f1b2f tags: handle tags from edited tags.
Augie Fackler <durin42@gmail.com>
parents: 450
diff changeset
139 '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
140 self.assertEqual(repo[alsoedit].parents()[0].node(), repo.tags()['also-edit'])
1321
a36e87ae2380 tests: always compare manifest keys in sorted order
Siddharth Agarwal <sid0@fb.com>
parents: 1160
diff changeset
141 self.assertEqual(sorted(repo['also-edit'].manifest().keys()),
a36e87ae2380 tests: always compare manifest keys in sorted order
Siddharth Agarwal <sid0@fb.com>
parents: 1160
diff changeset
142 ['.hgtags', 'alpha', 'beta', 'delta', 'gamma', 'iota',
a36e87ae2380 tests: always compare manifest keys in sorted order
Siddharth Agarwal <sid0@fb.com>
parents: 1160
diff changeset
143 'lambda', 'omega'])
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
144
452
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
145 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
146 self.assertEqual(
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
147 repo[closeme].extra(),
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
148 {'close': '1',
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
149 'branch': 'closeme',
ae35c389cdef tags: allow editing tags of closed branches without reopening the branch
Augie Fackler <durin42@gmail.com>
parents: 451
diff changeset
150 '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
151 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
152
389
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
153 def test_tags_in_unusual_location(self):
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
154 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
155 self.assertEqual(len(repo.heads()), 1)
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
156 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
157 for h in repo.heads())
389
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
158 self.assertEqual(branches, set(['magic', ]))
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
159 tags = repo.tags()
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
160 del tags['tip']
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
161 self.assertEqual(
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
162 tags,
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
163 {'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
164 '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
165 })
a8811c84e3ee tags: Fix an improper parent calculation.
Augie Fackler <durin42@gmail.com>
parents: 381
diff changeset
166
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
167 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
168 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
169 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
170 open(tm, 'w').write('1\n')
1160
f06bb42bd2b2 svnmeta: turn tags into lazy property
Sean Farley <sean.michael.farley@gmail.com>
parents: 1103
diff changeset
171 # force tags to load since it is lazily loaded when needed
f06bb42bd2b2 svnmeta: turn tags into lazy property
Sean Farley <sean.michael.farley@gmail.com>
parents: 1103
diff changeset
172 repo.svnmeta().tags
453
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
173 commands.pull(repo.ui, repo)
bb612e625be6 tags: handle copyfrom old versions of tags more correctly
Augie Fackler <durin42@gmail.com>
parents: 452
diff changeset
174 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
175
521
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
176 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
177 def formatnode(ctx):
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
178 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
179 path, rev = crev.rsplit('@', 1)
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
180 path = path.split('/', 1)[-1]
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
181 branch = ctx.branch() or 'default'
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
182 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
183
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
184 w = fp.write
541
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
185 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
186 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
187 return
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
188 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
189 w('%s\n' % desc)
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
190 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
191 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
192 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
193 w('\n')
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
194
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
195 def _test_tags(self, testpath, expected):
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
196 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
197 fp = cStringIO.StringIO()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
198 for r in repo:
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
199 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
200 output = fp.getvalue().strip()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
201 expected = expected.strip()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
202 if expected == output:
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
203 return
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
204 expected = expected.splitlines()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
205 output = output.splitlines()
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
206 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
207 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
208
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
209 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
210 expected = """\
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
211 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
212 First tag.
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
213 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
214
839734dfb5c7 Handle tag subdirectory as tag in replay mode (issue119)
Patrick Mezard <pmezard@gmail.com>
parents: 474
diff changeset
215 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
216 Weird 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 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
219
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
220 node: hg=test@4:svn=branches/test@6
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
221 Fix tag pt 1.
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
222 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
223 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
224 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
225 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
226
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
227 node: hg=test@5:svn=branches/test@7
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
228 Remove weird.
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
229 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
230 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
231 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
232 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
233 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
234
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
235 node: hg=test@6:svn=branches/test@8
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
236 Fix tag pt 2.
d380e7e4175a Extend issue119 to full original weirdness
Patrick Mezard <pmezard@gmail.com>
parents: 536
diff changeset
237 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
238 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
239 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
240 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
241 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
242 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
243 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
244 """
1076
58b2d84df5e7 test_tags: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
245 self._test_tags('renametagdir.svndump', expected)