comparison tests/test_fetch_renames.py @ 1489:9a6bb3657861

Merge with stable.
author Augie Fackler <raf@durin42.com>
date Sun, 26 Jun 2016 21:10:36 -0400
parents 6088597abd20
children
comparison
equal deleted inserted replaced
1478:797c7b58a735 1489:9a6bb3657861
32 'hgsubversion.failonmissing': 'yes', 32 'hgsubversion.failonmissing': 'yes',
33 } 33 }
34 repo = self._load_fixture_and_fetch('renames_with_prefix.svndump', 34 repo = self._load_fixture_and_fetch('renames_with_prefix.svndump',
35 subdir='prefix', 35 subdir='prefix',
36 config=config) 36 config=config)
37 self._run_assertions(repo) 37 self._run_assertions(repo, prefix=True)
38 38
39 def _run_assertions(self, repo): 39 def _run_assertions(self, repo, prefix=False):
40 # Map revnum to mappings of dest name to (source name, dest content) 40 # Map revnum to mappings of dest name to (source name, dest content)
41 if prefix:
42 prefixlen = len('svn:ae30a990-0fd3-493e-b5d7-883bdd606745/prefix')
43 else:
44 prefixlen = len('svn:ae30a990-0fd3-493e-b5d7-883bdd606745')
41 copies = { 45 copies = {
42 4: { 46 '/trunk@6': {
43 'a1': ('a', 'a\n'), 47 'a1': ('a', 'a\n'),
44 'linka1': ('linka', 'a'), 48 'linka1': ('linka', 'a'),
45 'a2': ('a', 'a\n'), 49 'a2': ('a', 'a\n'),
46 'linka2': ('linka', 'a'), 50 'linka2': ('linka', 'a'),
47 'b1': ('b', 'b\nc\n'), 51 'b1': ('b', 'b\nc\n'),
53 'da2/daf': ('da/daf', 'c\n'), 57 'da2/daf': ('da/daf', 'c\n'),
54 'da2/dalink': ('da/dalink', 'daf'), 58 'da2/dalink': ('da/dalink', 'daf'),
55 'da2/db/dbf': ('da/db/dbf', 'd\n'), 59 'da2/db/dbf': ('da/db/dbf', 'd\n'),
56 'da2/db/dblink': ('da/db/dblink', '../daf'), 60 'da2/db/dblink': ('da/db/dblink', '../daf'),
57 }, 61 },
58 5: { 62 '/branches/branch1@6': {
59 'c1': ('c', 'c\nc\n'), 63 'c1': ('c', 'c\nc\n'),
60 'linkc1': ('linkc', 'cc'), 64 'linkc1': ('linkc', 'cc'),
61 }, 65 },
62 9: { 66 '/trunk@10': {
63 'unchanged2': ('unchanged', 'unchanged\n'), 67 'unchanged2': ('unchanged', 'unchanged\n'),
64 'unchangedlink2': ('unchangedlink', 'unchanged'), 68 'unchangedlink2': ('unchangedlink', 'unchanged'),
65 'unchangeddir2/f': ('unchangeddir/f', 'unchanged2\n'), 69 'unchangeddir2/f': ('unchangeddir/f', 'unchanged2\n'),
66 'unchangeddir2/link': ('unchangeddir/link', 'f'), 70 'unchangeddir2/link': ('unchangeddir/link', 'f'),
67 }, 71 },
68 10: { 72 '/trunk@11': {
69 'groupdir2/b': ('groupdir/b', 'b\n'), 73 'groupdir2/b': ('groupdir/b', 'b\n'),
70 'groupdir2/linkb': ('groupdir/linkb', 'b'), 74 'groupdir2/linkb': ('groupdir/linkb', 'b'),
71 }, 75 },
72 } 76 }
73 for rev in repo: 77 for rev in repo:
74 ctx = repo[rev] 78 ctx = repo[rev]
75 copymap = copies.get(rev, {}) 79 copymap = copies.get(ctx.extra()['convert_revision'][prefixlen:],
80 {})
76 for f in ctx.manifest(): 81 for f in ctx.manifest():
77 cp = ctx[f].renamed() 82 cp = ctx[f].renamed()
78 self.assertEqual(bool(cp), bool(copymap.get(f)), 83 want = copymap.get(f)
79 'copy records differ for %s in %d' % (f, rev)) 84 self.assertEqual(
80 if not cp: 85 bool(cp), bool(want),
81 continue 86 'copy records differ for %s in %d (want %r, got %r)' % (
82 self.assertEqual(cp[0], copymap[f][0]) 87 f, rev, want, cp))
83 self.assertEqual(ctx[f].data(), copymap[f][1]) 88 if cp:
89 self.assertEqual(cp[0], want[0])
90 self.assertEqual(ctx[f].data(), want[1])
84 91
85 self.assertEqual(repo['tip']['changed3'].data(), 'changed\nchanged3\n') 92 self.assertEqual(repo['tip']['changed3'].data(), 'changed\nchanged3\n')
86 93
87 def test_case(self): 94 def test_case(self):
88 repo = self._load_fixture_and_fetch('filecase.svndump') 95 repo = self._load_fixture_and_fetch('filecase.svndump')