##// END OF EJS Templates
tests: port test-convert-filemap.t to simple store...
Gregory Szorc -
r37438:84e7d2d8 default
parent child Browse files
Show More
@@ -1,787 +1,796 b''
1
1
2 $ HGMERGE=true; export HGMERGE
2 $ HGMERGE=true; export HGMERGE
3 $ echo '[extensions]' >> $HGRCPATH
3 $ echo '[extensions]' >> $HGRCPATH
4 $ echo 'convert =' >> $HGRCPATH
4 $ echo 'convert =' >> $HGRCPATH
5 $ glog()
5 $ glog()
6 > {
6 > {
7 > hg log -G --template '{rev} "{desc}" files: {files}\n' "$@"
7 > hg log -G --template '{rev} "{desc}" files: {files}\n' "$@"
8 > }
8 > }
9 $ hg init source
9 $ hg init source
10 $ cd source
10 $ cd source
11 $ echo foo > foo
11 $ echo foo > foo
12 $ echo baz > baz
12 $ echo baz > baz
13 $ mkdir -p dir/subdir
13 $ mkdir -p dir/subdir
14 $ echo dir/file >> dir/file
14 $ echo dir/file >> dir/file
15 $ echo dir/file2 >> dir/file2
15 $ echo dir/file2 >> dir/file2
16 $ echo dir/file3 >> dir/file3 # to be corrupted in rev 0
16 $ echo dir/file3 >> dir/file3 # to be corrupted in rev 0
17 $ echo dir/subdir/file3 >> dir/subdir/file3
17 $ echo dir/subdir/file3 >> dir/subdir/file3
18 $ echo dir/subdir/file4 >> dir/subdir/file4
18 $ echo dir/subdir/file4 >> dir/subdir/file4
19 $ hg ci -d '0 0' -qAm '0: add foo baz dir/'
19 $ hg ci -d '0 0' -qAm '0: add foo baz dir/'
20 $ echo bar > bar
20 $ echo bar > bar
21 $ echo quux > quux
21 $ echo quux > quux
22 $ echo dir/file4 >> dir/file4 # to be corrupted in rev 1
22 $ echo dir/file4 >> dir/file4 # to be corrupted in rev 1
23 $ hg copy foo copied
23 $ hg copy foo copied
24 $ hg ci -d '1 0' -qAm '1: add bar quux; copy foo to copied'
24 $ hg ci -d '1 0' -qAm '1: add bar quux; copy foo to copied'
25 $ echo >> foo
25 $ echo >> foo
26 $ hg ci -d '2 0' -m '2: change foo'
26 $ hg ci -d '2 0' -m '2: change foo'
27 $ hg up -qC 1
27 $ hg up -qC 1
28 $ echo >> bar
28 $ echo >> bar
29 $ echo >> quux
29 $ echo >> quux
30 $ hg ci -d '3 0' -m '3: change bar quux'
30 $ hg ci -d '3 0' -m '3: change bar quux'
31 created new head
31 created new head
32 $ hg up -qC 2
32 $ hg up -qC 2
33 $ hg merge -qr 3
33 $ hg merge -qr 3
34 $ echo >> bar
34 $ echo >> bar
35 $ echo >> baz
35 $ echo >> baz
36 $ hg ci -d '4 0' -m '4: first merge; change bar baz'
36 $ hg ci -d '4 0' -m '4: first merge; change bar baz'
37 $ echo >> bar
37 $ echo >> bar
38 $ echo 1 >> baz
38 $ echo 1 >> baz
39 $ echo >> quux
39 $ echo >> quux
40 $ hg ci -d '5 0' -m '5: change bar baz quux'
40 $ hg ci -d '5 0' -m '5: change bar baz quux'
41 $ hg up -qC 4
41 $ hg up -qC 4
42 $ echo >> foo
42 $ echo >> foo
43 $ echo 2 >> baz
43 $ echo 2 >> baz
44 $ hg ci -d '6 0' -m '6: change foo baz'
44 $ hg ci -d '6 0' -m '6: change foo baz'
45 created new head
45 created new head
46 $ hg up -qC 5
46 $ hg up -qC 5
47 $ hg merge -qr 6
47 $ hg merge -qr 6
48 $ echo >> bar
48 $ echo >> bar
49 $ hg ci -d '7 0' -m '7: second merge; change bar'
49 $ hg ci -d '7 0' -m '7: second merge; change bar'
50 $ echo >> foo
50 $ echo >> foo
51 $ hg ci -m '8: change foo'
51 $ hg ci -m '8: change foo'
52 $ glog
52 $ glog
53 @ 8 "8: change foo" files: foo
53 @ 8 "8: change foo" files: foo
54 |
54 |
55 o 7 "7: second merge; change bar" files: bar baz
55 o 7 "7: second merge; change bar" files: bar baz
56 |\
56 |\
57 | o 6 "6: change foo baz" files: baz foo
57 | o 6 "6: change foo baz" files: baz foo
58 | |
58 | |
59 o | 5 "5: change bar baz quux" files: bar baz quux
59 o | 5 "5: change bar baz quux" files: bar baz quux
60 |/
60 |/
61 o 4 "4: first merge; change bar baz" files: bar baz
61 o 4 "4: first merge; change bar baz" files: bar baz
62 |\
62 |\
63 | o 3 "3: change bar quux" files: bar quux
63 | o 3 "3: change bar quux" files: bar quux
64 | |
64 | |
65 o | 2 "2: change foo" files: foo
65 o | 2 "2: change foo" files: foo
66 |/
66 |/
67 o 1 "1: add bar quux; copy foo to copied" files: bar copied dir/file4 quux
67 o 1 "1: add bar quux; copy foo to copied" files: bar copied dir/file4 quux
68 |
68 |
69 o 0 "0: add foo baz dir/" files: baz dir/file dir/file2 dir/file3 dir/subdir/file3 dir/subdir/file4 foo
69 o 0 "0: add foo baz dir/" files: baz dir/file dir/file2 dir/file3 dir/subdir/file3 dir/subdir/file4 foo
70
70
71
71
72 final file versions in this repo:
72 final file versions in this repo:
73
73
74 $ hg manifest --debug
74 $ hg manifest --debug
75 9463f52fe115e377cf2878d4fc548117211063f2 644 bar
75 9463f52fe115e377cf2878d4fc548117211063f2 644 bar
76 94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644 baz
76 94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644 baz
77 7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644 copied
77 7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644 copied
78 3e20847584beff41d7cd16136b7331ab3d754be0 644 dir/file
78 3e20847584beff41d7cd16136b7331ab3d754be0 644 dir/file
79 75e6d3f8328f5f6ace6bf10b98df793416a09dca 644 dir/file2
79 75e6d3f8328f5f6ace6bf10b98df793416a09dca 644 dir/file2
80 e96dce0bc6a217656a3a410e5e6bec2c4f42bf7c 644 dir/file3
80 e96dce0bc6a217656a3a410e5e6bec2c4f42bf7c 644 dir/file3
81 6edd55f559cdce67132b12ca09e09cee08b60442 644 dir/file4
81 6edd55f559cdce67132b12ca09e09cee08b60442 644 dir/file4
82 5fe139720576e18e34bcc9f79174db8897c8afe9 644 dir/subdir/file3
82 5fe139720576e18e34bcc9f79174db8897c8afe9 644 dir/subdir/file3
83 57a1c1511590f3de52874adfa04effe8a77d64af 644 dir/subdir/file4
83 57a1c1511590f3de52874adfa04effe8a77d64af 644 dir/subdir/file4
84 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
84 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
85 bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
85 bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
86 $ hg debugrename copied
86 $ hg debugrename copied
87 copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
87 copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
88
88
89 $ cd ..
89 $ cd ..
90
90
91
91
92 Test interaction with startrev and verify that changing it is handled properly:
92 Test interaction with startrev and verify that changing it is handled properly:
93
93
94 $ > empty
94 $ > empty
95 $ hg convert --filemap empty source movingstart --config convert.hg.startrev=3 -r4
95 $ hg convert --filemap empty source movingstart --config convert.hg.startrev=3 -r4
96 initializing destination movingstart repository
96 initializing destination movingstart repository
97 scanning source...
97 scanning source...
98 sorting...
98 sorting...
99 converting...
99 converting...
100 1 3: change bar quux
100 1 3: change bar quux
101 0 4: first merge; change bar baz
101 0 4: first merge; change bar baz
102 $ hg convert --filemap empty source movingstart
102 $ hg convert --filemap empty source movingstart
103 scanning source...
103 scanning source...
104 sorting...
104 sorting...
105 converting...
105 converting...
106 3 5: change bar baz quux
106 3 5: change bar baz quux
107 2 6: change foo baz
107 2 6: change foo baz
108 1 7: second merge; change bar
108 1 7: second merge; change bar
109 warning: af455ce4166b3c9c88e6309c2b9332171dcea595 parent 61e22ca76c3b3e93df20338c4e02ce286898e825 is missing
109 warning: af455ce4166b3c9c88e6309c2b9332171dcea595 parent 61e22ca76c3b3e93df20338c4e02ce286898e825 is missing
110 warning: cf908b3eeedc301c9272ebae931da966d5b326c7 parent 59e1ab45c888289513b7354484dac8a88217beab is missing
110 warning: cf908b3eeedc301c9272ebae931da966d5b326c7 parent 59e1ab45c888289513b7354484dac8a88217beab is missing
111 0 8: change foo
111 0 8: change foo
112
112
113
113
114 splitrepo tests
114 splitrepo tests
115
115
116 $ splitrepo()
116 $ splitrepo()
117 > {
117 > {
118 > msg="$1"
118 > msg="$1"
119 > files="$2"
119 > files="$2"
120 > opts=$3
120 > opts=$3
121 > echo "% $files: $msg"
121 > echo "% $files: $msg"
122 > prefix=`echo "$files" | sed -e 's/ /-/g'`
122 > prefix=`echo "$files" | sed -e 's/ /-/g'`
123 > fmap="$prefix.fmap"
123 > fmap="$prefix.fmap"
124 > repo="$prefix.repo"
124 > repo="$prefix.repo"
125 > for i in $files; do
125 > for i in $files; do
126 > echo "include $i" >> "$fmap"
126 > echo "include $i" >> "$fmap"
127 > done
127 > done
128 > hg -q convert $opts --filemap "$fmap" --datesort source "$repo"
128 > hg -q convert $opts --filemap "$fmap" --datesort source "$repo"
129 > hg up -q -R "$repo"
129 > hg up -q -R "$repo"
130 > glog -R "$repo"
130 > glog -R "$repo"
131 > hg -R "$repo" manifest --debug
131 > hg -R "$repo" manifest --debug
132 > }
132 > }
133 $ splitrepo 'skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd' foo
133 $ splitrepo 'skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd' foo
134 % foo: skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd
134 % foo: skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd
135 @ 3 "8: change foo" files: foo
135 @ 3 "8: change foo" files: foo
136 |
136 |
137 o 2 "6: change foo baz" files: foo
137 o 2 "6: change foo baz" files: foo
138 |
138 |
139 o 1 "2: change foo" files: foo
139 o 1 "2: change foo" files: foo
140 |
140 |
141 o 0 "0: add foo baz dir/" files: foo
141 o 0 "0: add foo baz dir/" files: foo
142
142
143 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
143 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
144 $ splitrepo 'merges are not merges anymore' bar
144 $ splitrepo 'merges are not merges anymore' bar
145 % bar: merges are not merges anymore
145 % bar: merges are not merges anymore
146 @ 4 "7: second merge; change bar" files: bar
146 @ 4 "7: second merge; change bar" files: bar
147 |
147 |
148 o 3 "5: change bar baz quux" files: bar
148 o 3 "5: change bar baz quux" files: bar
149 |
149 |
150 o 2 "4: first merge; change bar baz" files: bar
150 o 2 "4: first merge; change bar baz" files: bar
151 |
151 |
152 o 1 "3: change bar quux" files: bar
152 o 1 "3: change bar quux" files: bar
153 |
153 |
154 o 0 "1: add bar quux; copy foo to copied" files: bar
154 o 0 "1: add bar quux; copy foo to copied" files: bar
155
155
156 9463f52fe115e377cf2878d4fc548117211063f2 644 bar
156 9463f52fe115e377cf2878d4fc548117211063f2 644 bar
157 $ splitrepo '1st merge is not a merge anymore; 2nd still is' baz
157 $ splitrepo '1st merge is not a merge anymore; 2nd still is' baz
158 % baz: 1st merge is not a merge anymore; 2nd still is
158 % baz: 1st merge is not a merge anymore; 2nd still is
159 @ 4 "7: second merge; change bar" files: baz
159 @ 4 "7: second merge; change bar" files: baz
160 |\
160 |\
161 | o 3 "6: change foo baz" files: baz
161 | o 3 "6: change foo baz" files: baz
162 | |
162 | |
163 o | 2 "5: change bar baz quux" files: baz
163 o | 2 "5: change bar baz quux" files: baz
164 |/
164 |/
165 o 1 "4: first merge; change bar baz" files: baz
165 o 1 "4: first merge; change bar baz" files: baz
166 |
166 |
167 o 0 "0: add foo baz dir/" files: baz
167 o 0 "0: add foo baz dir/" files: baz
168
168
169 94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644 baz
169 94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644 baz
170 $ splitrepo 'we add additional merges when they are interesting' 'foo quux'
170 $ splitrepo 'we add additional merges when they are interesting' 'foo quux'
171 % foo quux: we add additional merges when they are interesting
171 % foo quux: we add additional merges when they are interesting
172 @ 8 "8: change foo" files: foo
172 @ 8 "8: change foo" files: foo
173 |
173 |
174 o 7 "7: second merge; change bar" files:
174 o 7 "7: second merge; change bar" files:
175 |\
175 |\
176 | o 6 "6: change foo baz" files: foo
176 | o 6 "6: change foo baz" files: foo
177 | |
177 | |
178 o | 5 "5: change bar baz quux" files: quux
178 o | 5 "5: change bar baz quux" files: quux
179 |/
179 |/
180 o 4 "4: first merge; change bar baz" files:
180 o 4 "4: first merge; change bar baz" files:
181 |\
181 |\
182 | o 3 "3: change bar quux" files: quux
182 | o 3 "3: change bar quux" files: quux
183 | |
183 | |
184 o | 2 "2: change foo" files: foo
184 o | 2 "2: change foo" files: foo
185 |/
185 |/
186 o 1 "1: add bar quux; copy foo to copied" files: quux
186 o 1 "1: add bar quux; copy foo to copied" files: quux
187 |
187 |
188 o 0 "0: add foo baz dir/" files: foo
188 o 0 "0: add foo baz dir/" files: foo
189
189
190 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
190 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
191 bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
191 bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
192 $ splitrepo 'partial conversion' 'bar quux' '-r 3'
192 $ splitrepo 'partial conversion' 'bar quux' '-r 3'
193 % bar quux: partial conversion
193 % bar quux: partial conversion
194 @ 1 "3: change bar quux" files: bar quux
194 @ 1 "3: change bar quux" files: bar quux
195 |
195 |
196 o 0 "1: add bar quux; copy foo to copied" files: bar quux
196 o 0 "1: add bar quux; copy foo to copied" files: bar quux
197
197
198 b79105bedc55102f394e90a789c9c380117c1b4a 644 bar
198 b79105bedc55102f394e90a789c9c380117c1b4a 644 bar
199 db0421cc6b685a458c8d86c7d5c004f94429ea23 644 quux
199 db0421cc6b685a458c8d86c7d5c004f94429ea23 644 quux
200 $ splitrepo 'complete the partial conversion' 'bar quux'
200 $ splitrepo 'complete the partial conversion' 'bar quux'
201 % bar quux: complete the partial conversion
201 % bar quux: complete the partial conversion
202 @ 4 "7: second merge; change bar" files: bar
202 @ 4 "7: second merge; change bar" files: bar
203 |
203 |
204 o 3 "5: change bar baz quux" files: bar quux
204 o 3 "5: change bar baz quux" files: bar quux
205 |
205 |
206 o 2 "4: first merge; change bar baz" files: bar
206 o 2 "4: first merge; change bar baz" files: bar
207 |
207 |
208 o 1 "3: change bar quux" files: bar quux
208 o 1 "3: change bar quux" files: bar quux
209 |
209 |
210 o 0 "1: add bar quux; copy foo to copied" files: bar quux
210 o 0 "1: add bar quux; copy foo to copied" files: bar quux
211
211
212 9463f52fe115e377cf2878d4fc548117211063f2 644 bar
212 9463f52fe115e377cf2878d4fc548117211063f2 644 bar
213 bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
213 bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
214 $ rm -r foo.repo
214 $ rm -r foo.repo
215 $ splitrepo 'partial conversion' 'foo' '-r 3'
215 $ splitrepo 'partial conversion' 'foo' '-r 3'
216 % foo: partial conversion
216 % foo: partial conversion
217 @ 0 "0: add foo baz dir/" files: foo
217 @ 0 "0: add foo baz dir/" files: foo
218
218
219 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 foo
219 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 foo
220 $ splitrepo 'complete the partial conversion' 'foo'
220 $ splitrepo 'complete the partial conversion' 'foo'
221 % foo: complete the partial conversion
221 % foo: complete the partial conversion
222 @ 3 "8: change foo" files: foo
222 @ 3 "8: change foo" files: foo
223 |
223 |
224 o 2 "6: change foo baz" files: foo
224 o 2 "6: change foo baz" files: foo
225 |
225 |
226 o 1 "2: change foo" files: foo
226 o 1 "2: change foo" files: foo
227 |
227 |
228 o 0 "0: add foo baz dir/" files: foo
228 o 0 "0: add foo baz dir/" files: foo
229
229
230 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
230 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
231 $ splitrepo 'copied file; source not included in new repo' copied
231 $ splitrepo 'copied file; source not included in new repo' copied
232 % copied: copied file; source not included in new repo
232 % copied: copied file; source not included in new repo
233 @ 0 "1: add bar quux; copy foo to copied" files: copied
233 @ 0 "1: add bar quux; copy foo to copied" files: copied
234
234
235 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 copied
235 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 copied
236 $ hg --cwd copied.repo debugrename copied
236 $ hg --cwd copied.repo debugrename copied
237 copied not renamed
237 copied not renamed
238 $ splitrepo 'copied file; source included in new repo' 'foo copied'
238 $ splitrepo 'copied file; source included in new repo' 'foo copied'
239 % foo copied: copied file; source included in new repo
239 % foo copied: copied file; source included in new repo
240 @ 4 "8: change foo" files: foo
240 @ 4 "8: change foo" files: foo
241 |
241 |
242 o 3 "6: change foo baz" files: foo
242 o 3 "6: change foo baz" files: foo
243 |
243 |
244 o 2 "2: change foo" files: foo
244 o 2 "2: change foo" files: foo
245 |
245 |
246 o 1 "1: add bar quux; copy foo to copied" files: copied
246 o 1 "1: add bar quux; copy foo to copied" files: copied
247 |
247 |
248 o 0 "0: add foo baz dir/" files: foo
248 o 0 "0: add foo baz dir/" files: foo
249
249
250 7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644 copied
250 7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644 copied
251 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
251 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
252 $ hg --cwd foo-copied.repo debugrename copied
252 $ hg --cwd foo-copied.repo debugrename copied
253 copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
253 copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
254
254
255 verify the top level 'include .' if there is no other includes:
255 verify the top level 'include .' if there is no other includes:
256
256
257 $ echo "exclude something" > default.fmap
257 $ echo "exclude something" > default.fmap
258 $ hg convert -q --filemap default.fmap -r1 source dummydest2
258 $ hg convert -q --filemap default.fmap -r1 source dummydest2
259 $ hg -R dummydest2 log --template '{rev} {node|short} {desc|firstline}\n'
259 $ hg -R dummydest2 log --template '{rev} {node|short} {desc|firstline}\n'
260 1 61e22ca76c3b 1: add bar quux; copy foo to copied
260 1 61e22ca76c3b 1: add bar quux; copy foo to copied
261 0 c085cf2ee7fe 0: add foo baz dir/
261 0 c085cf2ee7fe 0: add foo baz dir/
262
262
263 $ echo "include somethingelse" >> default.fmap
263 $ echo "include somethingelse" >> default.fmap
264 $ hg convert -q --filemap default.fmap -r1 source dummydest3
264 $ hg convert -q --filemap default.fmap -r1 source dummydest3
265 $ hg -R dummydest3 log --template '{rev} {node|short} {desc|firstline}\n'
265 $ hg -R dummydest3 log --template '{rev} {node|short} {desc|firstline}\n'
266
266
267 $ echo "include ." >> default.fmap
267 $ echo "include ." >> default.fmap
268 $ hg convert -q --filemap default.fmap -r1 source dummydest4
268 $ hg convert -q --filemap default.fmap -r1 source dummydest4
269 $ hg -R dummydest4 log --template '{rev} {node|short} {desc|firstline}\n'
269 $ hg -R dummydest4 log --template '{rev} {node|short} {desc|firstline}\n'
270 1 61e22ca76c3b 1: add bar quux; copy foo to copied
270 1 61e22ca76c3b 1: add bar quux; copy foo to copied
271 0 c085cf2ee7fe 0: add foo baz dir/
271 0 c085cf2ee7fe 0: add foo baz dir/
272
272
273 ensure that the filemap contains duplicated slashes (issue3612)
273 ensure that the filemap contains duplicated slashes (issue3612)
274
274
275 $ cat > renames.fmap <<EOF
275 $ cat > renames.fmap <<EOF
276 > include dir
276 > include dir
277 > exclude dir/file2
277 > exclude dir/file2
278 > rename dir dir2//dir3
278 > rename dir dir2//dir3
279 > include foo
279 > include foo
280 > include copied
280 > include copied
281 > rename foo foo2/
281 > rename foo foo2/
282 > rename copied ./copied2
282 > rename copied ./copied2
283 > exclude dir/subdir
283 > exclude dir/subdir
284 > include dir/subdir/file3
284 > include dir/subdir/file3
285 > EOF
285 > EOF
286 #if reporevlogstore
286 $ rm source/.hg/store/data/dir/file3.i
287 $ rm source/.hg/store/data/dir/file3.i
287 $ rm source/.hg/store/data/dir/file4.i
288 $ rm source/.hg/store/data/dir/file4.i
289 #endif
290 #if reposimplestore
291 $ rm -rf source/.hg/store/data/dir/file3
292 $ rm -rf source/.hg/store/data/dir/file4
293 #endif
288 $ hg -q convert --filemap renames.fmap --datesort source dummydest
294 $ hg -q convert --filemap renames.fmap --datesort source dummydest
289 abort: data/dir/file3.i@e96dce0bc6a2: no match found!
295 abort: data/dir/file3.i@e96dce0bc6a2: no match found! (reporevlogstore !)
296 abort: data/dir/file3/index@e96dce0bc6a2: no node! (reposimplestore !)
290 [255]
297 [255]
291 $ hg -q convert --filemap renames.fmap --datesort --config convert.hg.ignoreerrors=1 source renames.repo
298 $ hg -q convert --filemap renames.fmap --datesort --config convert.hg.ignoreerrors=1 source renames.repo
292 ignoring: data/dir/file3.i@e96dce0bc6a2: no match found
299 ignoring: data/dir/file3.i@e96dce0bc6a2: no match found (reporevlogstore !)
293 ignoring: data/dir/file4.i@6edd55f559cd: no match found
300 ignoring: data/dir/file4.i@6edd55f559cd: no match found (reporevlogstore !)
301 ignoring: data/dir/file3/index@e96dce0bc6a2: no node (reposimplestore !)
302 ignoring: data/dir/file4/index@6edd55f559cd: no node (reposimplestore !)
294 $ hg up -q -R renames.repo
303 $ hg up -q -R renames.repo
295 $ glog -R renames.repo
304 $ glog -R renames.repo
296 @ 4 "8: change foo" files: foo2
305 @ 4 "8: change foo" files: foo2
297 |
306 |
298 o 3 "6: change foo baz" files: foo2
307 o 3 "6: change foo baz" files: foo2
299 |
308 |
300 o 2 "2: change foo" files: foo2
309 o 2 "2: change foo" files: foo2
301 |
310 |
302 o 1 "1: add bar quux; copy foo to copied" files: copied2
311 o 1 "1: add bar quux; copy foo to copied" files: copied2
303 |
312 |
304 o 0 "0: add foo baz dir/" files: dir2/dir3/file dir2/dir3/subdir/file3 foo2
313 o 0 "0: add foo baz dir/" files: dir2/dir3/file dir2/dir3/subdir/file3 foo2
305
314
306 $ hg -R renames.repo verify
315 $ hg -R renames.repo verify
307 checking changesets
316 checking changesets
308 checking manifests
317 checking manifests
309 crosschecking files in changesets and manifests
318 crosschecking files in changesets and manifests
310 checking files
319 checking files
311 4 files, 5 changesets, 7 total revisions
320 4 files, 5 changesets, 7 total revisions
312
321
313 $ hg -R renames.repo manifest --debug
322 $ hg -R renames.repo manifest --debug
314 d43feacba7a4f1f2080dde4a4b985bd8a0236d46 644 copied2
323 d43feacba7a4f1f2080dde4a4b985bd8a0236d46 644 copied2
315 3e20847584beff41d7cd16136b7331ab3d754be0 644 dir2/dir3/file
324 3e20847584beff41d7cd16136b7331ab3d754be0 644 dir2/dir3/file
316 5fe139720576e18e34bcc9f79174db8897c8afe9 644 dir2/dir3/subdir/file3
325 5fe139720576e18e34bcc9f79174db8897c8afe9 644 dir2/dir3/subdir/file3
317 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo2
326 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo2
318 $ hg --cwd renames.repo debugrename copied2
327 $ hg --cwd renames.repo debugrename copied2
319 copied2 renamed from foo2:2ed2a3912a0b24502043eae84ee4b279c18b90dd
328 copied2 renamed from foo2:2ed2a3912a0b24502043eae84ee4b279c18b90dd
320
329
321 copied:
330 copied:
322
331
323 $ hg --cwd source cat copied
332 $ hg --cwd source cat copied
324 foo
333 foo
325
334
326 copied2:
335 copied2:
327
336
328 $ hg --cwd renames.repo cat copied2
337 $ hg --cwd renames.repo cat copied2
329 foo
338 foo
330
339
331 filemap errors
340 filemap errors
332
341
333 $ cat > errors.fmap <<EOF
342 $ cat > errors.fmap <<EOF
334 > include dir/ # beware that comments changes error line numbers!
343 > include dir/ # beware that comments changes error line numbers!
335 > exclude /dir
344 > exclude /dir
336 > rename dir//dir /dir//dir/ "out of sync"
345 > rename dir//dir /dir//dir/ "out of sync"
337 > include
346 > include
338 > EOF
347 > EOF
339 $ hg -q convert --filemap errors.fmap source errors.repo
348 $ hg -q convert --filemap errors.fmap source errors.repo
340 errors.fmap:3: superfluous / in include '/dir'
349 errors.fmap:3: superfluous / in include '/dir'
341 errors.fmap:3: superfluous / in rename '/dir'
350 errors.fmap:3: superfluous / in rename '/dir'
342 errors.fmap:4: unknown directive 'out of sync'
351 errors.fmap:4: unknown directive 'out of sync'
343 errors.fmap:5: path to exclude is missing
352 errors.fmap:5: path to exclude is missing
344 abort: errors in filemap
353 abort: errors in filemap
345 [255]
354 [255]
346
355
347 test branch closing revision pruning if branch is pruned
356 test branch closing revision pruning if branch is pruned
348
357
349 $ hg init branchpruning
358 $ hg init branchpruning
350 $ cd branchpruning
359 $ cd branchpruning
351 $ hg branch foo
360 $ hg branch foo
352 marked working directory as branch foo
361 marked working directory as branch foo
353 (branches are permanent and global, did you want a bookmark?)
362 (branches are permanent and global, did you want a bookmark?)
354 $ echo a > a
363 $ echo a > a
355 $ hg ci -Am adda
364 $ hg ci -Am adda
356 adding a
365 adding a
357 $ hg ci --close-branch -m closefoo
366 $ hg ci --close-branch -m closefoo
358 $ hg up 0
367 $ hg up 0
359 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
368 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
360 $ hg branch empty
369 $ hg branch empty
361 marked working directory as branch empty
370 marked working directory as branch empty
362 (branches are permanent and global, did you want a bookmark?)
371 (branches are permanent and global, did you want a bookmark?)
363 $ hg ci -m emptybranch
372 $ hg ci -m emptybranch
364 $ hg ci --close-branch -m closeempty
373 $ hg ci --close-branch -m closeempty
365 $ hg up 0
374 $ hg up 0
366 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
375 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
367 $ hg branch default
376 $ hg branch default
368 marked working directory as branch default
377 marked working directory as branch default
369 (branches are permanent and global, did you want a bookmark?)
378 (branches are permanent and global, did you want a bookmark?)
370 $ echo b > b
379 $ echo b > b
371 $ hg ci -Am addb
380 $ hg ci -Am addb
372 adding b
381 adding b
373 $ hg ci --close-branch -m closedefault
382 $ hg ci --close-branch -m closedefault
374 $ cat > filemap <<EOF
383 $ cat > filemap <<EOF
375 > include b
384 > include b
376 > EOF
385 > EOF
377 $ cd ..
386 $ cd ..
378 $ hg convert branchpruning branchpruning-hg1
387 $ hg convert branchpruning branchpruning-hg1
379 initializing destination branchpruning-hg1 repository
388 initializing destination branchpruning-hg1 repository
380 scanning source...
389 scanning source...
381 sorting...
390 sorting...
382 converting...
391 converting...
383 5 adda
392 5 adda
384 4 closefoo
393 4 closefoo
385 3 emptybranch
394 3 emptybranch
386 2 closeempty
395 2 closeempty
387 1 addb
396 1 addb
388 0 closedefault
397 0 closedefault
389 $ glog -R branchpruning-hg1
398 $ glog -R branchpruning-hg1
390 _ 5 "closedefault" files:
399 _ 5 "closedefault" files:
391 |
400 |
392 o 4 "addb" files: b
401 o 4 "addb" files: b
393 |
402 |
394 | _ 3 "closeempty" files:
403 | _ 3 "closeempty" files:
395 | |
404 | |
396 | o 2 "emptybranch" files:
405 | o 2 "emptybranch" files:
397 |/
406 |/
398 | _ 1 "closefoo" files:
407 | _ 1 "closefoo" files:
399 |/
408 |/
400 o 0 "adda" files: a
409 o 0 "adda" files: a
401
410
402
411
403 exercise incremental conversion at the same time
412 exercise incremental conversion at the same time
404
413
405 $ hg convert -r0 --filemap branchpruning/filemap branchpruning branchpruning-hg2
414 $ hg convert -r0 --filemap branchpruning/filemap branchpruning branchpruning-hg2
406 initializing destination branchpruning-hg2 repository
415 initializing destination branchpruning-hg2 repository
407 scanning source...
416 scanning source...
408 sorting...
417 sorting...
409 converting...
418 converting...
410 0 adda
419 0 adda
411 $ hg convert -r4 --filemap branchpruning/filemap branchpruning branchpruning-hg2
420 $ hg convert -r4 --filemap branchpruning/filemap branchpruning branchpruning-hg2
412 scanning source...
421 scanning source...
413 sorting...
422 sorting...
414 converting...
423 converting...
415 0 addb
424 0 addb
416 $ hg convert --filemap branchpruning/filemap branchpruning branchpruning-hg2
425 $ hg convert --filemap branchpruning/filemap branchpruning branchpruning-hg2
417 scanning source...
426 scanning source...
418 sorting...
427 sorting...
419 converting...
428 converting...
420 3 closefoo
429 3 closefoo
421 2 emptybranch
430 2 emptybranch
422 1 closeempty
431 1 closeempty
423 0 closedefault
432 0 closedefault
424 $ glog -R branchpruning-hg2
433 $ glog -R branchpruning-hg2
425 _ 1 "closedefault" files:
434 _ 1 "closedefault" files:
426 |
435 |
427 o 0 "addb" files: b
436 o 0 "addb" files: b
428
437
429
438
430 Test rebuilding of map with unknown revisions in shamap - it used to crash
439 Test rebuilding of map with unknown revisions in shamap - it used to crash
431
440
432 $ cd branchpruning
441 $ cd branchpruning
433 $ hg up -r 2
442 $ hg up -r 2
434 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
443 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
435 $ hg merge 4
444 $ hg merge 4
436 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
445 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
437 (branch merge, don't forget to commit)
446 (branch merge, don't forget to commit)
438 $ hg ci -m 'merging something'
447 $ hg ci -m 'merging something'
439 $ cd ..
448 $ cd ..
440 $ echo "53792d18237d2b64971fa571936869156655338d 6d955580116e82c4b029bd30f321323bae71a7f0" >> branchpruning-hg2/.hg/shamap
449 $ echo "53792d18237d2b64971fa571936869156655338d 6d955580116e82c4b029bd30f321323bae71a7f0" >> branchpruning-hg2/.hg/shamap
441 $ hg convert --filemap branchpruning/filemap branchpruning branchpruning-hg2 --debug --config progress.debug=true
450 $ hg convert --filemap branchpruning/filemap branchpruning branchpruning-hg2 --debug --config progress.debug=true
442 run hg source pre-conversion action
451 run hg source pre-conversion action
443 run hg sink pre-conversion action
452 run hg sink pre-conversion action
444 scanning source...
453 scanning source...
445 scanning: 1 revisions
454 scanning: 1 revisions
446 sorting...
455 sorting...
447 converting...
456 converting...
448 0 merging something
457 0 merging something
449 source: 2503605b178fe50e8fbbb0e77b97939540aa8c87
458 source: 2503605b178fe50e8fbbb0e77b97939540aa8c87
450 converting: 0/1 revisions (0.00%)
459 converting: 0/1 revisions (0.00%)
451 unknown revmap source: 53792d18237d2b64971fa571936869156655338d
460 unknown revmap source: 53792d18237d2b64971fa571936869156655338d
452 run hg sink post-conversion action
461 run hg sink post-conversion action
453 run hg source post-conversion action
462 run hg source post-conversion action
454
463
455
464
456 filemap rename undoing revision rename
465 filemap rename undoing revision rename
457
466
458 $ hg init renameundo
467 $ hg init renameundo
459 $ cd renameundo
468 $ cd renameundo
460 $ echo 1 > a
469 $ echo 1 > a
461 $ echo 1 > c
470 $ echo 1 > c
462 $ hg ci -qAm add
471 $ hg ci -qAm add
463 $ hg mv -q a b/a
472 $ hg mv -q a b/a
464 $ hg mv -q c b/c
473 $ hg mv -q c b/c
465 $ hg ci -qm rename
474 $ hg ci -qm rename
466 $ echo 2 > b/a
475 $ echo 2 > b/a
467 $ echo 2 > b/c
476 $ echo 2 > b/c
468 $ hg ci -qm modify
477 $ hg ci -qm modify
469 $ cd ..
478 $ cd ..
470
479
471 $ echo "rename b ." > renameundo.fmap
480 $ echo "rename b ." > renameundo.fmap
472 $ hg convert --filemap renameundo.fmap renameundo renameundo2
481 $ hg convert --filemap renameundo.fmap renameundo renameundo2
473 initializing destination renameundo2 repository
482 initializing destination renameundo2 repository
474 scanning source...
483 scanning source...
475 sorting...
484 sorting...
476 converting...
485 converting...
477 2 add
486 2 add
478 1 rename
487 1 rename
479 filtering out empty revision
488 filtering out empty revision
480 repository tip rolled back to revision 0 (undo convert)
489 repository tip rolled back to revision 0 (undo convert)
481 0 modify
490 0 modify
482 $ glog -R renameundo2
491 $ glog -R renameundo2
483 o 1 "modify" files: a c
492 o 1 "modify" files: a c
484 |
493 |
485 o 0 "add" files: a c
494 o 0 "add" files: a c
486
495
487
496
488
497
489 test merge parents/empty merges pruning
498 test merge parents/empty merges pruning
490
499
491 $ glog()
500 $ glog()
492 > {
501 > {
493 > hg log -G --template '{rev}:{node|short}@{branch} "{desc}" files: {files}\n' "$@"
502 > hg log -G --template '{rev}:{node|short}@{branch} "{desc}" files: {files}\n' "$@"
494 > }
503 > }
495
504
496 test anonymous branch pruning
505 test anonymous branch pruning
497
506
498 $ hg init anonymousbranch
507 $ hg init anonymousbranch
499 $ cd anonymousbranch
508 $ cd anonymousbranch
500 $ echo a > a
509 $ echo a > a
501 $ echo b > b
510 $ echo b > b
502 $ hg ci -Am add
511 $ hg ci -Am add
503 adding a
512 adding a
504 adding b
513 adding b
505 $ echo a >> a
514 $ echo a >> a
506 $ hg ci -m changea
515 $ hg ci -m changea
507 $ hg up 0
516 $ hg up 0
508 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
517 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
509 $ echo b >> b
518 $ echo b >> b
510 $ hg ci -m changeb
519 $ hg ci -m changeb
511 created new head
520 created new head
512 $ hg up 1
521 $ hg up 1
513 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
522 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
514 $ hg merge
523 $ hg merge
515 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
524 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
516 (branch merge, don't forget to commit)
525 (branch merge, don't forget to commit)
517 $ hg ci -m merge
526 $ hg ci -m merge
518 $ cd ..
527 $ cd ..
519
528
520 $ cat > filemap <<EOF
529 $ cat > filemap <<EOF
521 > include a
530 > include a
522 > EOF
531 > EOF
523 $ hg convert --filemap filemap anonymousbranch anonymousbranch-hg
532 $ hg convert --filemap filemap anonymousbranch anonymousbranch-hg
524 initializing destination anonymousbranch-hg repository
533 initializing destination anonymousbranch-hg repository
525 scanning source...
534 scanning source...
526 sorting...
535 sorting...
527 converting...
536 converting...
528 3 add
537 3 add
529 2 changea
538 2 changea
530 1 changeb
539 1 changeb
531 0 merge
540 0 merge
532 $ glog -R anonymousbranch
541 $ glog -R anonymousbranch
533 @ 3:c71d5201a498@default "merge" files:
542 @ 3:c71d5201a498@default "merge" files:
534 |\
543 |\
535 | o 2:607eb44b17f9@default "changeb" files: b
544 | o 2:607eb44b17f9@default "changeb" files: b
536 | |
545 | |
537 o | 1:1f60ea617824@default "changea" files: a
546 o | 1:1f60ea617824@default "changea" files: a
538 |/
547 |/
539 o 0:0146e6129113@default "add" files: a b
548 o 0:0146e6129113@default "add" files: a b
540
549
541 $ glog -R anonymousbranch-hg
550 $ glog -R anonymousbranch-hg
542 o 1:cda818e7219b@default "changea" files: a
551 o 1:cda818e7219b@default "changea" files: a
543 |
552 |
544 o 0:c334dc3be0da@default "add" files: a
553 o 0:c334dc3be0da@default "add" files: a
545
554
546 $ cat anonymousbranch-hg/.hg/shamap
555 $ cat anonymousbranch-hg/.hg/shamap
547 0146e6129113dba9ac90207cfdf2d7ed35257ae5 c334dc3be0daa2a4e9ce4d2e2bdcba40c09d4916
556 0146e6129113dba9ac90207cfdf2d7ed35257ae5 c334dc3be0daa2a4e9ce4d2e2bdcba40c09d4916
548 1f60ea61782421edf8d051ff4fcb61b330f26a4a cda818e7219b5f7f3fb9f49780054ed6a1905ec3
557 1f60ea61782421edf8d051ff4fcb61b330f26a4a cda818e7219b5f7f3fb9f49780054ed6a1905ec3
549 607eb44b17f9348cd5cbd26e16af87ba77b0b037 c334dc3be0daa2a4e9ce4d2e2bdcba40c09d4916
558 607eb44b17f9348cd5cbd26e16af87ba77b0b037 c334dc3be0daa2a4e9ce4d2e2bdcba40c09d4916
550 c71d5201a498b2658d105a6bf69d7a0df2649aea cda818e7219b5f7f3fb9f49780054ed6a1905ec3
559 c71d5201a498b2658d105a6bf69d7a0df2649aea cda818e7219b5f7f3fb9f49780054ed6a1905ec3
551
560
552 $ cat > filemap <<EOF
561 $ cat > filemap <<EOF
553 > include b
562 > include b
554 > EOF
563 > EOF
555 $ hg convert --filemap filemap anonymousbranch anonymousbranch-hg2
564 $ hg convert --filemap filemap anonymousbranch anonymousbranch-hg2
556 initializing destination anonymousbranch-hg2 repository
565 initializing destination anonymousbranch-hg2 repository
557 scanning source...
566 scanning source...
558 sorting...
567 sorting...
559 converting...
568 converting...
560 3 add
569 3 add
561 2 changea
570 2 changea
562 1 changeb
571 1 changeb
563 0 merge
572 0 merge
564 $ glog -R anonymousbranch
573 $ glog -R anonymousbranch
565 @ 3:c71d5201a498@default "merge" files:
574 @ 3:c71d5201a498@default "merge" files:
566 |\
575 |\
567 | o 2:607eb44b17f9@default "changeb" files: b
576 | o 2:607eb44b17f9@default "changeb" files: b
568 | |
577 | |
569 o | 1:1f60ea617824@default "changea" files: a
578 o | 1:1f60ea617824@default "changea" files: a
570 |/
579 |/
571 o 0:0146e6129113@default "add" files: a b
580 o 0:0146e6129113@default "add" files: a b
572
581
573 $ glog -R anonymousbranch-hg2
582 $ glog -R anonymousbranch-hg2
574 o 1:62dd350b0df6@default "changeb" files: b
583 o 1:62dd350b0df6@default "changeb" files: b
575 |
584 |
576 o 0:4b9ced861657@default "add" files: b
585 o 0:4b9ced861657@default "add" files: b
577
586
578 $ cat anonymousbranch-hg2/.hg/shamap
587 $ cat anonymousbranch-hg2/.hg/shamap
579 0146e6129113dba9ac90207cfdf2d7ed35257ae5 4b9ced86165703791653059a1db6ed864630a523
588 0146e6129113dba9ac90207cfdf2d7ed35257ae5 4b9ced86165703791653059a1db6ed864630a523
580 1f60ea61782421edf8d051ff4fcb61b330f26a4a 4b9ced86165703791653059a1db6ed864630a523
589 1f60ea61782421edf8d051ff4fcb61b330f26a4a 4b9ced86165703791653059a1db6ed864630a523
581 607eb44b17f9348cd5cbd26e16af87ba77b0b037 62dd350b0df695f7d2c82a02e0499b16fd790f22
590 607eb44b17f9348cd5cbd26e16af87ba77b0b037 62dd350b0df695f7d2c82a02e0499b16fd790f22
582 c71d5201a498b2658d105a6bf69d7a0df2649aea 62dd350b0df695f7d2c82a02e0499b16fd790f22
591 c71d5201a498b2658d105a6bf69d7a0df2649aea 62dd350b0df695f7d2c82a02e0499b16fd790f22
583
592
584 test named branch pruning
593 test named branch pruning
585
594
586 $ hg init namedbranch
595 $ hg init namedbranch
587 $ cd namedbranch
596 $ cd namedbranch
588 $ echo a > a
597 $ echo a > a
589 $ echo b > b
598 $ echo b > b
590 $ hg ci -Am add
599 $ hg ci -Am add
591 adding a
600 adding a
592 adding b
601 adding b
593 $ echo a >> a
602 $ echo a >> a
594 $ hg ci -m changea
603 $ hg ci -m changea
595 $ hg up 0
604 $ hg up 0
596 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
605 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
597 $ hg branch foo
606 $ hg branch foo
598 marked working directory as branch foo
607 marked working directory as branch foo
599 (branches are permanent and global, did you want a bookmark?)
608 (branches are permanent and global, did you want a bookmark?)
600 $ echo b >> b
609 $ echo b >> b
601 $ hg ci -m changeb
610 $ hg ci -m changeb
602 $ hg up default
611 $ hg up default
603 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
612 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
604 $ hg merge foo
613 $ hg merge foo
605 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
614 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
606 (branch merge, don't forget to commit)
615 (branch merge, don't forget to commit)
607 $ hg ci -m merge
616 $ hg ci -m merge
608 $ cd ..
617 $ cd ..
609
618
610 $ cat > filemap <<EOF
619 $ cat > filemap <<EOF
611 > include a
620 > include a
612 > EOF
621 > EOF
613 $ hg convert --filemap filemap namedbranch namedbranch-hg
622 $ hg convert --filemap filemap namedbranch namedbranch-hg
614 initializing destination namedbranch-hg repository
623 initializing destination namedbranch-hg repository
615 scanning source...
624 scanning source...
616 sorting...
625 sorting...
617 converting...
626 converting...
618 3 add
627 3 add
619 2 changea
628 2 changea
620 1 changeb
629 1 changeb
621 0 merge
630 0 merge
622 $ glog -R namedbranch
631 $ glog -R namedbranch
623 @ 3:73899bcbe45c@default "merge" files:
632 @ 3:73899bcbe45c@default "merge" files:
624 |\
633 |\
625 | o 2:8097982d19fc@foo "changeb" files: b
634 | o 2:8097982d19fc@foo "changeb" files: b
626 | |
635 | |
627 o | 1:1f60ea617824@default "changea" files: a
636 o | 1:1f60ea617824@default "changea" files: a
628 |/
637 |/
629 o 0:0146e6129113@default "add" files: a b
638 o 0:0146e6129113@default "add" files: a b
630
639
631 $ glog -R namedbranch-hg
640 $ glog -R namedbranch-hg
632 o 1:cda818e7219b@default "changea" files: a
641 o 1:cda818e7219b@default "changea" files: a
633 |
642 |
634 o 0:c334dc3be0da@default "add" files: a
643 o 0:c334dc3be0da@default "add" files: a
635
644
636
645
637 $ cd namedbranch
646 $ cd namedbranch
638 $ hg --config extensions.mq= strip tip
647 $ hg --config extensions.mq= strip tip
639 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
648 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
640 saved backup bundle to $TESTTMP/namedbranch/.hg/strip-backup/73899bcbe45c-92adf160-backup.hg
649 saved backup bundle to $TESTTMP/namedbranch/.hg/strip-backup/73899bcbe45c-92adf160-backup.hg
641 $ hg up foo
650 $ hg up foo
642 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
651 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
643 $ hg merge default
652 $ hg merge default
644 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
653 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
645 (branch merge, don't forget to commit)
654 (branch merge, don't forget to commit)
646 $ hg ci -m merge
655 $ hg ci -m merge
647 $ cd ..
656 $ cd ..
648
657
649 $ hg convert --filemap filemap namedbranch namedbranch-hg2
658 $ hg convert --filemap filemap namedbranch namedbranch-hg2
650 initializing destination namedbranch-hg2 repository
659 initializing destination namedbranch-hg2 repository
651 scanning source...
660 scanning source...
652 sorting...
661 sorting...
653 converting...
662 converting...
654 3 add
663 3 add
655 2 changea
664 2 changea
656 1 changeb
665 1 changeb
657 0 merge
666 0 merge
658 $ glog -R namedbranch
667 $ glog -R namedbranch
659 @ 3:e1959de76e1b@foo "merge" files:
668 @ 3:e1959de76e1b@foo "merge" files:
660 |\
669 |\
661 | o 2:8097982d19fc@foo "changeb" files: b
670 | o 2:8097982d19fc@foo "changeb" files: b
662 | |
671 | |
663 o | 1:1f60ea617824@default "changea" files: a
672 o | 1:1f60ea617824@default "changea" files: a
664 |/
673 |/
665 o 0:0146e6129113@default "add" files: a b
674 o 0:0146e6129113@default "add" files: a b
666
675
667 $ glog -R namedbranch-hg2
676 $ glog -R namedbranch-hg2
668 o 2:dcf314454667@foo "merge" files:
677 o 2:dcf314454667@foo "merge" files:
669 |\
678 |\
670 | o 1:cda818e7219b@default "changea" files: a
679 | o 1:cda818e7219b@default "changea" files: a
671 |/
680 |/
672 o 0:c334dc3be0da@default "add" files: a
681 o 0:c334dc3be0da@default "add" files: a
673
682
674 $ cd ..
683 $ cd ..
675
684
676 test converting merges into a repo that contains other files
685 test converting merges into a repo that contains other files
677
686
678 $ hg init merge-test1
687 $ hg init merge-test1
679 $ cd merge-test1
688 $ cd merge-test1
680 $ touch a && hg commit -Aqm 'add a'
689 $ touch a && hg commit -Aqm 'add a'
681 $ echo a > a && hg commit -Aqm 'edit a'
690 $ echo a > a && hg commit -Aqm 'edit a'
682 $ hg up -q 0
691 $ hg up -q 0
683 $ touch b && hg commit -Aqm 'add b'
692 $ touch b && hg commit -Aqm 'add b'
684 $ hg merge -q 1 && hg commit -qm 'merge a & b'
693 $ hg merge -q 1 && hg commit -qm 'merge a & b'
685
694
686 $ cd ..
695 $ cd ..
687 $ hg init merge-test2
696 $ hg init merge-test2
688 $ cd merge-test2
697 $ cd merge-test2
689 $ mkdir converted
698 $ mkdir converted
690 $ touch converted/a toberemoved && hg commit -Aqm 'add converted/a & toberemoved'
699 $ touch converted/a toberemoved && hg commit -Aqm 'add converted/a & toberemoved'
691 $ touch x && rm toberemoved && hg commit -Aqm 'add x & remove tobremoved'
700 $ touch x && rm toberemoved && hg commit -Aqm 'add x & remove tobremoved'
692 $ cd ..
701 $ cd ..
693 $ hg log -G -T '{shortest(node)} {desc}' -R merge-test1
702 $ hg log -G -T '{shortest(node)} {desc}' -R merge-test1
694 @ 1191 merge a & b
703 @ 1191 merge a & b
695 |\
704 |\
696 | o 9077 add b
705 | o 9077 add b
697 | |
706 | |
698 o | d19f edit a
707 o | d19f edit a
699 |/
708 |/
700 o ac82 add a
709 o ac82 add a
701
710
702 $ hg log -G -T '{shortest(node)} {desc}' -R merge-test2
711 $ hg log -G -T '{shortest(node)} {desc}' -R merge-test2
703 @ 150e add x & remove tobremoved
712 @ 150e add x & remove tobremoved
704 |
713 |
705 o bbac add converted/a & toberemoved
714 o bbac add converted/a & toberemoved
706
715
707 - Build a shamap where the target converted/a is in on top of an unrelated
716 - Build a shamap where the target converted/a is in on top of an unrelated
708 - change to 'x'. This simulates using convert to merge several repositories
717 - change to 'x'. This simulates using convert to merge several repositories
709 - together.
718 - together.
710 $ cat >> merge-test2/.hg/shamap <<EOF
719 $ cat >> merge-test2/.hg/shamap <<EOF
711 > $(hg -R merge-test1 log -r 0 -T '{node}') $(hg -R merge-test2 log -r 0 -T '{node}')
720 > $(hg -R merge-test1 log -r 0 -T '{node}') $(hg -R merge-test2 log -r 0 -T '{node}')
712 > $(hg -R merge-test1 log -r 1 -T '{node}') $(hg -R merge-test2 log -r 1 -T '{node}')
721 > $(hg -R merge-test1 log -r 1 -T '{node}') $(hg -R merge-test2 log -r 1 -T '{node}')
713 > EOF
722 > EOF
714 $ cat >> merge-test-filemap <<EOF
723 $ cat >> merge-test-filemap <<EOF
715 > rename . converted/
724 > rename . converted/
716 > EOF
725 > EOF
717 $ hg convert --filemap merge-test-filemap merge-test1 merge-test2 --traceback
726 $ hg convert --filemap merge-test-filemap merge-test1 merge-test2 --traceback
718 scanning source...
727 scanning source...
719 sorting...
728 sorting...
720 converting...
729 converting...
721 1 add b
730 1 add b
722 0 merge a & b
731 0 merge a & b
723 $ hg -R merge-test2 manifest -r tip
732 $ hg -R merge-test2 manifest -r tip
724 converted/a
733 converted/a
725 converted/b
734 converted/b
726 x
735 x
727 $ hg -R merge-test2 log -G -T '{shortest(node)} {desc}\n{files % "- {file}\n"}\n'
736 $ hg -R merge-test2 log -G -T '{shortest(node)} {desc}\n{files % "- {file}\n"}\n'
728 o 6eaa merge a & b
737 o 6eaa merge a & b
729 |\ - converted/a
738 |\ - converted/a
730 | | - toberemoved
739 | | - toberemoved
731 | |
740 | |
732 | o 2995 add b
741 | o 2995 add b
733 | | - converted/b
742 | | - converted/b
734 | |
743 | |
735 @ | 150e add x & remove tobremoved
744 @ | 150e add x & remove tobremoved
736 |/ - toberemoved
745 |/ - toberemoved
737 | - x
746 | - x
738 |
747 |
739 o bbac add converted/a & toberemoved
748 o bbac add converted/a & toberemoved
740 - converted/a
749 - converted/a
741 - toberemoved
750 - toberemoved
742
751
743 $ cd ..
752 $ cd ..
744
753
745 Test case where cleanp2 contains a file that doesn't exist in p2 - for
754 Test case where cleanp2 contains a file that doesn't exist in p2 - for
746 example because filemap changed.
755 example because filemap changed.
747
756
748 $ hg init cleanp2
757 $ hg init cleanp2
749 $ cd cleanp2
758 $ cd cleanp2
750 $ touch f f1 f2 && hg ci -Aqm '0'
759 $ touch f f1 f2 && hg ci -Aqm '0'
751 $ echo f1 > f1 && echo >> f && hg ci -m '1'
760 $ echo f1 > f1 && echo >> f && hg ci -m '1'
752 $ hg up -qr0 && echo f2 > f2 && echo >> f && hg ci -qm '2'
761 $ hg up -qr0 && echo f2 > f2 && echo >> f && hg ci -qm '2'
753 $ echo "include f" > filemap
762 $ echo "include f" > filemap
754 $ hg convert --filemap filemap .
763 $ hg convert --filemap filemap .
755 assuming destination .-hg
764 assuming destination .-hg
756 initializing destination .-hg repository
765 initializing destination .-hg repository
757 scanning source...
766 scanning source...
758 sorting...
767 sorting...
759 converting...
768 converting...
760 2 0
769 2 0
761 1 1
770 1 1
762 0 2
771 0 2
763 $ hg merge && hg ci -qm '3'
772 $ hg merge && hg ci -qm '3'
764 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
773 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
765 (branch merge, don't forget to commit)
774 (branch merge, don't forget to commit)
766 $ echo "include ." > filemap
775 $ echo "include ." > filemap
767 $ hg convert --filemap filemap .
776 $ hg convert --filemap filemap .
768 assuming destination .-hg
777 assuming destination .-hg
769 scanning source...
778 scanning source...
770 sorting...
779 sorting...
771 converting...
780 converting...
772 0 3
781 0 3
773 $ hg -R .-hg log -G -T '{shortest(node)} {desc}\n{files % "- {file}\n"}\n'
782 $ hg -R .-hg log -G -T '{shortest(node)} {desc}\n{files % "- {file}\n"}\n'
774 o e9ed 3
783 o e9ed 3
775 |\
784 |\
776 | o 33a0 2
785 | o 33a0 2
777 | | - f
786 | | - f
778 | |
787 | |
779 o | f73e 1
788 o | f73e 1
780 |/ - f
789 |/ - f
781 |
790 |
782 o d681 0
791 o d681 0
783 - f
792 - f
784
793
785 $ hg -R .-hg mani -r tip
794 $ hg -R .-hg mani -r tip
786 f
795 f
787 $ cd ..
796 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now