comparison tests/test-convert-filemap @ 5379:d3e51dc804f8

mercurial_source: add --filemap support
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Thu, 04 Oct 2007 23:21:37 -0300
parents
children 7239e06e58e9
comparison
equal deleted inserted replaced
5378:8a2915f57dfc 5379:d3e51dc804f8
1 #!/bin/sh
2
3 HGMERGE=true; export HGMERGE
4
5 echo '[extensions]' >> $HGRCPATH
6 echo 'hgext.graphlog =' >> $HGRCPATH
7 echo 'hgext.convert =' >> $HGRCPATH
8
9 glog()
10 {
11 hg glog --template '#rev# "#desc#" files: #files#\n' "$@"
12 }
13
14 hg init source
15 cd source
16
17 echo foo > foo
18 echo baz > baz
19 mkdir dir
20 echo dir/file >> dir/file
21 echo dir/file2 >> dir/file2
22 hg ci -d '0 0' -qAm '0: add foo baz dir/'
23
24 echo bar > bar
25 echo quux > quux
26 hg copy foo copied
27 hg ci -d '1 0' -qAm '1: add bar quux; copy foo to copied'
28
29 echo >> foo
30 hg ci -d '2 0' -m '2: change foo'
31
32 hg up -qC 1
33 echo >> bar
34 echo >> quux
35 hg ci -d '3 0' -m '3: change bar quux'
36
37 hg up -qC 2
38 hg merge -qr 3
39 echo >> bar
40 echo >> baz
41 hg ci -d '4 0' -m '4: first merge; change bar baz'
42
43 echo >> bar
44 echo 1 >> baz
45 echo >> quux
46 hg ci -d '5 0' -m '5: change bar baz quux'
47
48 hg up -qC 4
49 echo >> foo
50 echo 2 >> baz
51 hg ci -d '6 0' -m '6: change foo baz'
52
53 hg up -qC 5
54 hg merge -qr 6
55 echo >> bar
56 hg ci -d '7 0' -m '7: second merge; change bar'
57
58 echo >> foo
59 hg ci -m '8: change foo'
60
61 glog
62
63 echo '% final file versions in this repo:'
64 hg manifest --debug
65 hg debugrename copied
66 echo
67
68 cd ..
69
70 splitrepo()
71 {
72 msg="$1"
73 files="$2"
74 opts=$3
75 echo "% $files: $msg"
76 prefix=`echo "$files" | sed -e 's/ /-/g'`
77 fmap="$prefix.fmap"
78 repo="$prefix.repo"
79 for i in $files; do
80 echo "include $i" >> "$fmap"
81 done
82 hg -q convert $opts --filemap "$fmap" --datesort source "$repo"
83 glog -R "$repo"
84 hg -R "$repo" manifest --debug
85 }
86
87 splitrepo 'skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd' foo
88
89 splitrepo 'merges are not merges anymore' bar
90
91 splitrepo '1st merge is not a merge anymore; 2nd still is' baz
92
93 splitrepo 'we add additional merges when they are interesting' 'foo quux'
94
95 splitrepo 'partial conversion' 'bar quux' '-r 3'
96 splitrepo 'complete the partial conversion' 'bar quux'
97
98 rm -r foo.repo
99 splitrepo 'partial conversion' 'foo' '-r 3'
100 splitrepo 'complete the partial conversion' 'foo'
101
102 splitrepo 'copied file; source not included in new repo' copied
103 hg --cwd copied.repo debugrename copied
104
105 splitrepo 'copied file; source included in new repo' 'foo copied'
106 hg --cwd foo-copied.repo debugrename copied
107
108 cat > renames.fmap <<EOF
109 include dir
110 exclude dir/file2
111 rename dir dir2
112 include foo
113 include copied
114 rename foo foo2
115 rename copied copied2
116 EOF
117 hg -q convert --filemap renames.fmap --datesort source renames.repo
118 glog -R renames.repo
119 hg -R renames.repo manifest --debug
120 hg --cwd renames.repo debugrename copied2
121 echo 'copied:'
122 hg --cwd source cat copied
123 echo 'copied2:'
124 hg --cwd renames.repo cat copied2