##// END OF EJS Templates
tests: add test for add of explicit path in subrepo...
David M. Carr -
r15409:83c2e677 default
parent child Browse files
Show More
@@ -1,885 +1,1008 b''
1 Let commit recurse into subrepos by default to match pre-2.0 behavior:
1 Let commit recurse into subrepos by default to match pre-2.0 behavior:
2
2
3 $ echo "[ui]" >> $HGRCPATH
3 $ echo "[ui]" >> $HGRCPATH
4 $ echo "commitsubrepos = Yes" >> $HGRCPATH
4 $ echo "commitsubrepos = Yes" >> $HGRCPATH
5
5
6 $ rm -rf sub
6 $ rm -rf sub
7 $ mkdir sub
7 $ mkdir sub
8 $ cd sub
8 $ cd sub
9 $ hg init t
9 $ hg init t
10 $ cd t
10 $ cd t
11
11
12 first revision, no sub
12 first revision, no sub
13
13
14 $ echo a > a
14 $ echo a > a
15 $ hg ci -Am0
15 $ hg ci -Am0
16 adding a
16 adding a
17
17
18 add first sub
18 add first sub
19
19
20 $ echo s = s > .hgsub
20 $ echo s = s > .hgsub
21 $ hg add .hgsub
21 $ hg add .hgsub
22 $ hg init s
22 $ hg init s
23 $ echo a > s/a
23 $ echo a > s/a
24
24
25 Issue2232: committing a subrepo without .hgsub
25 Issue2232: committing a subrepo without .hgsub
26
26
27 $ hg ci -mbad s
27 $ hg ci -mbad s
28 abort: can't commit subrepos without .hgsub
28 abort: can't commit subrepos without .hgsub
29 [255]
29 [255]
30
30
31 $ hg -R s ci -Ams0
31 $ hg -R s ci -Ams0
32 adding a
32 adding a
33 $ hg sum
33 $ hg sum
34 parent: 0:f7b1eb17ad24 tip
34 parent: 0:f7b1eb17ad24 tip
35 0
35 0
36 branch: default
36 branch: default
37 commit: 1 added, 1 subrepos
37 commit: 1 added, 1 subrepos
38 update: (current)
38 update: (current)
39 $ hg ci -m1
39 $ hg ci -m1
40 committing subrepository s
40 committing subrepository s
41
41
42 Revert can't (yet) revert subrepos:
42 Revert can't (yet) revert subrepos:
43
43
44 $ echo b > s/a
44 $ echo b > s/a
45 $ hg revert s
45 $ hg revert s
46 s: reverting subrepos is unsupported
46 s: reverting subrepos is unsupported
47
47
48 Revert currently ignores subrepos by default
48 Revert currently ignores subrepos by default
49
49
50 $ hg revert -a
50 $ hg revert -a
51 $ hg revert -R s -a -C
51 $ hg revert -R s -a -C
52 reverting s/a
52 reverting s/a
53
53
54 Issue2022: update -C
54 Issue2022: update -C
55
55
56 $ echo b > s/a
56 $ echo b > s/a
57 $ hg sum
57 $ hg sum
58 parent: 1:7cf8cfea66e4 tip
58 parent: 1:7cf8cfea66e4 tip
59 1
59 1
60 branch: default
60 branch: default
61 commit: 1 subrepos
61 commit: 1 subrepos
62 update: (current)
62 update: (current)
63 $ hg co -C 1
63 $ hg co -C 1
64 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
64 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
65 $ hg sum
65 $ hg sum
66 parent: 1:7cf8cfea66e4 tip
66 parent: 1:7cf8cfea66e4 tip
67 1
67 1
68 branch: default
68 branch: default
69 commit: (clean)
69 commit: (clean)
70 update: (current)
70 update: (current)
71
71
72 commands that require a clean repo should respect subrepos
72 commands that require a clean repo should respect subrepos
73
73
74 $ echo b >> s/a
74 $ echo b >> s/a
75 $ hg backout tip
75 $ hg backout tip
76 abort: uncommitted changes in subrepo s
76 abort: uncommitted changes in subrepo s
77 [255]
77 [255]
78 $ hg revert -C -R s s/a
78 $ hg revert -C -R s s/a
79
79
80 add sub sub
80 add sub sub
81
81
82 $ echo ss = ss > s/.hgsub
82 $ echo ss = ss > s/.hgsub
83 $ hg init s/ss
83 $ hg init s/ss
84 $ echo a > s/ss/a
84 $ echo a > s/ss/a
85 $ hg -R s add s/.hgsub
85 $ hg -R s add s/.hgsub
86 $ hg -R s/ss add s/ss/a
86 $ hg -R s/ss add s/ss/a
87 $ hg sum
87 $ hg sum
88 parent: 1:7cf8cfea66e4 tip
88 parent: 1:7cf8cfea66e4 tip
89 1
89 1
90 branch: default
90 branch: default
91 commit: 1 subrepos
91 commit: 1 subrepos
92 update: (current)
92 update: (current)
93 $ hg ci -m2
93 $ hg ci -m2
94 committing subrepository s
94 committing subrepository s
95 committing subrepository s/ss
95 committing subrepository s/ss
96 $ hg sum
96 $ hg sum
97 parent: 2:df30734270ae tip
97 parent: 2:df30734270ae tip
98 2
98 2
99 branch: default
99 branch: default
100 commit: (clean)
100 commit: (clean)
101 update: (current)
101 update: (current)
102
102
103 bump sub rev (and check it is ignored by ui.commitsubrepos)
103 bump sub rev (and check it is ignored by ui.commitsubrepos)
104
104
105 $ echo b > s/a
105 $ echo b > s/a
106 $ hg -R s ci -ms1
106 $ hg -R s ci -ms1
107 $ hg --config ui.commitsubrepos=no ci -m3
107 $ hg --config ui.commitsubrepos=no ci -m3
108 committing subrepository s
108 committing subrepository s
109
109
110 leave sub dirty (and check ui.commitsubrepos=no aborts the commit)
110 leave sub dirty (and check ui.commitsubrepos=no aborts the commit)
111
111
112 $ echo c > s/a
112 $ echo c > s/a
113 $ hg --config ui.commitsubrepos=no ci -m4
113 $ hg --config ui.commitsubrepos=no ci -m4
114 abort: uncommitted changes in subrepo s
114 abort: uncommitted changes in subrepo s
115 (use --subrepos for recursive commit)
115 (use --subrepos for recursive commit)
116 [255]
116 [255]
117 $ hg ci -m4
117 $ hg ci -m4
118 committing subrepository s
118 committing subrepository s
119 $ hg tip -R s
119 $ hg tip -R s
120 changeset: 3:1c833a7a9e3a
120 changeset: 3:1c833a7a9e3a
121 tag: tip
121 tag: tip
122 user: test
122 user: test
123 date: Thu Jan 01 00:00:00 1970 +0000
123 date: Thu Jan 01 00:00:00 1970 +0000
124 summary: 4
124 summary: 4
125
125
126
126
127 check caching
127 check caching
128
128
129 $ hg co 0
129 $ hg co 0
130 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
130 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
131 $ hg debugsub
131 $ hg debugsub
132
132
133 restore
133 restore
134
134
135 $ hg co
135 $ hg co
136 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
136 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
137 $ hg debugsub
137 $ hg debugsub
138 path s
138 path s
139 source s
139 source s
140 revision 1c833a7a9e3a4445c711aaf0f012379cd0d4034e
140 revision 1c833a7a9e3a4445c711aaf0f012379cd0d4034e
141
141
142 new branch for merge tests
142 new branch for merge tests
143
143
144 $ hg co 1
144 $ hg co 1
145 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
145 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
146 $ echo t = t >> .hgsub
146 $ echo t = t >> .hgsub
147 $ hg init t
147 $ hg init t
148 $ echo t > t/t
148 $ echo t > t/t
149 $ hg -R t add t
149 $ hg -R t add t
150 adding t/t
150 adding t/t
151
151
152 5
152 5
153
153
154 $ hg ci -m5 # add sub
154 $ hg ci -m5 # add sub
155 committing subrepository t
155 committing subrepository t
156 created new head
156 created new head
157 $ echo t2 > t/t
157 $ echo t2 > t/t
158
158
159 6
159 6
160
160
161 $ hg st -R s
161 $ hg st -R s
162 $ hg ci -m6 # change sub
162 $ hg ci -m6 # change sub
163 committing subrepository t
163 committing subrepository t
164 $ hg debugsub
164 $ hg debugsub
165 path s
165 path s
166 source s
166 source s
167 revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
167 revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
168 path t
168 path t
169 source t
169 source t
170 revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
170 revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
171 $ echo t3 > t/t
171 $ echo t3 > t/t
172
172
173 7
173 7
174
174
175 $ hg ci -m7 # change sub again for conflict test
175 $ hg ci -m7 # change sub again for conflict test
176 committing subrepository t
176 committing subrepository t
177 $ hg rm .hgsub
177 $ hg rm .hgsub
178
178
179 8
179 8
180
180
181 $ hg ci -m8 # remove sub
181 $ hg ci -m8 # remove sub
182
182
183 merge tests
183 merge tests
184
184
185 $ hg co -C 3
185 $ hg co -C 3
186 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
186 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
187 $ hg merge 5 # test adding
187 $ hg merge 5 # test adding
188 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
188 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
189 (branch merge, don't forget to commit)
189 (branch merge, don't forget to commit)
190 $ hg debugsub
190 $ hg debugsub
191 path s
191 path s
192 source s
192 source s
193 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
193 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
194 path t
194 path t
195 source t
195 source t
196 revision 60ca1237c19474e7a3978b0dc1ca4e6f36d51382
196 revision 60ca1237c19474e7a3978b0dc1ca4e6f36d51382
197 $ hg ci -m9
197 $ hg ci -m9
198 created new head
198 created new head
199 $ hg merge 6 --debug # test change
199 $ hg merge 6 --debug # test change
200 searching for copies back to rev 2
200 searching for copies back to rev 2
201 resolving manifests
201 resolving manifests
202 overwrite None partial False
202 overwrite None partial False
203 ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4
203 ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4
204 .hgsubstate: versions differ -> m
204 .hgsubstate: versions differ -> m
205 updating: .hgsubstate 1/1 files (100.00%)
205 updating: .hgsubstate 1/1 files (100.00%)
206 subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
206 subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
207 subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
207 subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
208 getting subrepo t
208 getting subrepo t
209 resolving manifests
209 resolving manifests
210 overwrite True partial False
210 overwrite True partial False
211 ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a
211 ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a
212 t: remote is newer -> g
212 t: remote is newer -> g
213 updating: t 1/1 files (100.00%)
213 updating: t 1/1 files (100.00%)
214 getting t
214 getting t
215 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
215 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
216 (branch merge, don't forget to commit)
216 (branch merge, don't forget to commit)
217 $ hg debugsub
217 $ hg debugsub
218 path s
218 path s
219 source s
219 source s
220 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
220 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
221 path t
221 path t
222 source t
222 source t
223 revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
223 revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
224 $ echo conflict > t/t
224 $ echo conflict > t/t
225 $ hg ci -m10
225 $ hg ci -m10
226 committing subrepository t
226 committing subrepository t
227 $ HGMERGE=internal:merge hg merge --debug 7 # test conflict
227 $ HGMERGE=internal:merge hg merge --debug 7 # test conflict
228 searching for copies back to rev 2
228 searching for copies back to rev 2
229 resolving manifests
229 resolving manifests
230 overwrite None partial False
230 overwrite None partial False
231 ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf
231 ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf
232 .hgsubstate: versions differ -> m
232 .hgsubstate: versions differ -> m
233 updating: .hgsubstate 1/1 files (100.00%)
233 updating: .hgsubstate 1/1 files (100.00%)
234 subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
234 subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
235 subrepo t: both sides changed, merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg
235 subrepo t: both sides changed, merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg
236 merging subrepo t
236 merging subrepo t
237 searching for copies back to rev 2
237 searching for copies back to rev 2
238 resolving manifests
238 resolving manifests
239 overwrite None partial False
239 overwrite None partial False
240 ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198
240 ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198
241 t: versions differ -> m
241 t: versions differ -> m
242 preserving t for resolve of t
242 preserving t for resolve of t
243 updating: t 1/1 files (100.00%)
243 updating: t 1/1 files (100.00%)
244 picked tool 'internal:merge' for t (binary False symlink False)
244 picked tool 'internal:merge' for t (binary False symlink False)
245 merging t
245 merging t
246 my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
246 my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
247 warning: conflicts during merge.
247 warning: conflicts during merge.
248 merging t failed!
248 merging t failed!
249 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
249 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
250 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
250 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
251 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
251 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
252 (branch merge, don't forget to commit)
252 (branch merge, don't forget to commit)
253
253
254 should conflict
254 should conflict
255
255
256 $ cat t/t
256 $ cat t/t
257 <<<<<<< local
257 <<<<<<< local
258 conflict
258 conflict
259 =======
259 =======
260 t3
260 t3
261 >>>>>>> other
261 >>>>>>> other
262
262
263 clone
263 clone
264
264
265 $ cd ..
265 $ cd ..
266 $ hg clone t tc
266 $ hg clone t tc
267 updating to branch default
267 updating to branch default
268 cloning subrepo s from $TESTTMP/sub/t/s
268 cloning subrepo s from $TESTTMP/sub/t/s
269 cloning subrepo s/ss from $TESTTMP/sub/t/s/ss
269 cloning subrepo s/ss from $TESTTMP/sub/t/s/ss
270 cloning subrepo t from $TESTTMP/sub/t/t
270 cloning subrepo t from $TESTTMP/sub/t/t
271 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
271 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
272 $ cd tc
272 $ cd tc
273 $ hg debugsub
273 $ hg debugsub
274 path s
274 path s
275 source s
275 source s
276 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
276 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
277 path t
277 path t
278 source t
278 source t
279 revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e
279 revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e
280
280
281 push
281 push
282
282
283 $ echo bah > t/t
283 $ echo bah > t/t
284 $ hg ci -m11
284 $ hg ci -m11
285 committing subrepository t
285 committing subrepository t
286 $ hg push
286 $ hg push
287 pushing to $TESTTMP/sub/t
287 pushing to $TESTTMP/sub/t
288 pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
288 pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
289 searching for changes
289 searching for changes
290 no changes found
290 no changes found
291 pushing subrepo s to $TESTTMP/sub/t/s
291 pushing subrepo s to $TESTTMP/sub/t/s
292 searching for changes
292 searching for changes
293 no changes found
293 no changes found
294 pushing subrepo t to $TESTTMP/sub/t/t
294 pushing subrepo t to $TESTTMP/sub/t/t
295 searching for changes
295 searching for changes
296 adding changesets
296 adding changesets
297 adding manifests
297 adding manifests
298 adding file changes
298 adding file changes
299 added 1 changesets with 1 changes to 1 files
299 added 1 changesets with 1 changes to 1 files
300 searching for changes
300 searching for changes
301 adding changesets
301 adding changesets
302 adding manifests
302 adding manifests
303 adding file changes
303 adding file changes
304 added 1 changesets with 1 changes to 1 files
304 added 1 changesets with 1 changes to 1 files
305
305
306 push -f
306 push -f
307
307
308 $ echo bah > s/a
308 $ echo bah > s/a
309 $ hg ci -m12
309 $ hg ci -m12
310 committing subrepository s
310 committing subrepository s
311 $ hg push
311 $ hg push
312 pushing to $TESTTMP/sub/t
312 pushing to $TESTTMP/sub/t
313 pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
313 pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
314 searching for changes
314 searching for changes
315 no changes found
315 no changes found
316 pushing subrepo s to $TESTTMP/sub/t/s
316 pushing subrepo s to $TESTTMP/sub/t/s
317 searching for changes
317 searching for changes
318 abort: push creates new remote head 12a213df6fa9!
318 abort: push creates new remote head 12a213df6fa9!
319 (did you forget to merge? use push -f to force)
319 (did you forget to merge? use push -f to force)
320 [255]
320 [255]
321 $ hg push -f
321 $ hg push -f
322 pushing to $TESTTMP/sub/t
322 pushing to $TESTTMP/sub/t
323 pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
323 pushing subrepo s/ss to $TESTTMP/sub/t/s/ss
324 searching for changes
324 searching for changes
325 no changes found
325 no changes found
326 pushing subrepo s to $TESTTMP/sub/t/s
326 pushing subrepo s to $TESTTMP/sub/t/s
327 searching for changes
327 searching for changes
328 adding changesets
328 adding changesets
329 adding manifests
329 adding manifests
330 adding file changes
330 adding file changes
331 added 1 changesets with 1 changes to 1 files (+1 heads)
331 added 1 changesets with 1 changes to 1 files (+1 heads)
332 pushing subrepo t to $TESTTMP/sub/t/t
332 pushing subrepo t to $TESTTMP/sub/t/t
333 searching for changes
333 searching for changes
334 no changes found
334 no changes found
335 searching for changes
335 searching for changes
336 adding changesets
336 adding changesets
337 adding manifests
337 adding manifests
338 adding file changes
338 adding file changes
339 added 1 changesets with 1 changes to 1 files
339 added 1 changesets with 1 changes to 1 files
340
340
341 update
341 update
342
342
343 $ cd ../t
343 $ cd ../t
344 $ hg up -C # discard our earlier merge
344 $ hg up -C # discard our earlier merge
345 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
345 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
346 $ echo blah > t/t
346 $ echo blah > t/t
347 $ hg ci -m13
347 $ hg ci -m13
348 committing subrepository t
348 committing subrepository t
349
349
350 pull
350 pull
351
351
352 $ cd ../tc
352 $ cd ../tc
353 $ hg pull
353 $ hg pull
354 pulling from $TESTTMP/sub/t
354 pulling from $TESTTMP/sub/t
355 searching for changes
355 searching for changes
356 adding changesets
356 adding changesets
357 adding manifests
357 adding manifests
358 adding file changes
358 adding file changes
359 added 1 changesets with 1 changes to 1 files
359 added 1 changesets with 1 changes to 1 files
360 (run 'hg update' to get a working copy)
360 (run 'hg update' to get a working copy)
361
361
362 should pull t
362 should pull t
363
363
364 $ hg up
364 $ hg up
365 pulling subrepo t from $TESTTMP/sub/t/t
365 pulling subrepo t from $TESTTMP/sub/t/t
366 searching for changes
366 searching for changes
367 adding changesets
367 adding changesets
368 adding manifests
368 adding manifests
369 adding file changes
369 adding file changes
370 added 1 changesets with 1 changes to 1 files
370 added 1 changesets with 1 changes to 1 files
371 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
371 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
372 $ cat t/t
372 $ cat t/t
373 blah
373 blah
374
374
375 bogus subrepo path aborts
375 bogus subrepo path aborts
376
376
377 $ echo 'bogus=[boguspath' >> .hgsub
377 $ echo 'bogus=[boguspath' >> .hgsub
378 $ hg ci -m 'bogus subrepo path'
378 $ hg ci -m 'bogus subrepo path'
379 abort: missing ] in subrepo source
379 abort: missing ] in subrepo source
380 [255]
380 [255]
381
381
382 Issue1986: merge aborts when trying to merge a subrepo that
382 Issue1986: merge aborts when trying to merge a subrepo that
383 shouldn't need merging
383 shouldn't need merging
384
384
385 # subrepo layout
385 # subrepo layout
386 #
386 #
387 # o 5 br
387 # o 5 br
388 # /|
388 # /|
389 # o | 4 default
389 # o | 4 default
390 # | |
390 # | |
391 # | o 3 br
391 # | o 3 br
392 # |/|
392 # |/|
393 # o | 2 default
393 # o | 2 default
394 # | |
394 # | |
395 # | o 1 br
395 # | o 1 br
396 # |/
396 # |/
397 # o 0 default
397 # o 0 default
398
398
399 $ cd ..
399 $ cd ..
400 $ rm -rf sub
400 $ rm -rf sub
401 $ hg init main
401 $ hg init main
402 $ cd main
402 $ cd main
403 $ hg init s
403 $ hg init s
404 $ cd s
404 $ cd s
405 $ echo a > a
405 $ echo a > a
406 $ hg ci -Am1
406 $ hg ci -Am1
407 adding a
407 adding a
408 $ hg branch br
408 $ hg branch br
409 marked working directory as branch br
409 marked working directory as branch br
410 $ echo a >> a
410 $ echo a >> a
411 $ hg ci -m1
411 $ hg ci -m1
412 $ hg up default
412 $ hg up default
413 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
413 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
414 $ echo b > b
414 $ echo b > b
415 $ hg ci -Am1
415 $ hg ci -Am1
416 adding b
416 adding b
417 $ hg up br
417 $ hg up br
418 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
418 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
419 $ hg merge tip
419 $ hg merge tip
420 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
420 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
421 (branch merge, don't forget to commit)
421 (branch merge, don't forget to commit)
422 $ hg ci -m1
422 $ hg ci -m1
423 $ hg up 2
423 $ hg up 2
424 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
424 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
425 $ echo c > c
425 $ echo c > c
426 $ hg ci -Am1
426 $ hg ci -Am1
427 adding c
427 adding c
428 $ hg up 3
428 $ hg up 3
429 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
429 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
430 $ hg merge 4
430 $ hg merge 4
431 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
431 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
432 (branch merge, don't forget to commit)
432 (branch merge, don't forget to commit)
433 $ hg ci -m1
433 $ hg ci -m1
434
434
435 # main repo layout:
435 # main repo layout:
436 #
436 #
437 # * <-- try to merge default into br again
437 # * <-- try to merge default into br again
438 # .`|
438 # .`|
439 # . o 5 br --> substate = 5
439 # . o 5 br --> substate = 5
440 # . |
440 # . |
441 # o | 4 default --> substate = 4
441 # o | 4 default --> substate = 4
442 # | |
442 # | |
443 # | o 3 br --> substate = 2
443 # | o 3 br --> substate = 2
444 # |/|
444 # |/|
445 # o | 2 default --> substate = 2
445 # o | 2 default --> substate = 2
446 # | |
446 # | |
447 # | o 1 br --> substate = 3
447 # | o 1 br --> substate = 3
448 # |/
448 # |/
449 # o 0 default --> substate = 2
449 # o 0 default --> substate = 2
450
450
451 $ cd ..
451 $ cd ..
452 $ echo 's = s' > .hgsub
452 $ echo 's = s' > .hgsub
453 $ hg -R s up 2
453 $ hg -R s up 2
454 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
454 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
455 $ hg ci -Am1
455 $ hg ci -Am1
456 adding .hgsub
456 adding .hgsub
457 committing subrepository s
457 committing subrepository s
458 $ hg branch br
458 $ hg branch br
459 marked working directory as branch br
459 marked working directory as branch br
460 $ echo b > b
460 $ echo b > b
461 $ hg -R s up 3
461 $ hg -R s up 3
462 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
462 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
463 $ hg ci -Am1
463 $ hg ci -Am1
464 adding b
464 adding b
465 committing subrepository s
465 committing subrepository s
466 $ hg up default
466 $ hg up default
467 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
467 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
468 $ echo c > c
468 $ echo c > c
469 $ hg ci -Am1
469 $ hg ci -Am1
470 adding c
470 adding c
471 $ hg up 1
471 $ hg up 1
472 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
472 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
473 $ hg merge 2
473 $ hg merge 2
474 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
474 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
475 (branch merge, don't forget to commit)
475 (branch merge, don't forget to commit)
476 $ hg ci -m1
476 $ hg ci -m1
477 $ hg up 2
477 $ hg up 2
478 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
478 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
479 $ hg -R s up 4
479 $ hg -R s up 4
480 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
480 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
481 $ echo d > d
481 $ echo d > d
482 $ hg ci -Am1
482 $ hg ci -Am1
483 adding d
483 adding d
484 committing subrepository s
484 committing subrepository s
485 $ hg up 3
485 $ hg up 3
486 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
486 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
487 $ hg -R s up 5
487 $ hg -R s up 5
488 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
488 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
489 $ echo e > e
489 $ echo e > e
490 $ hg ci -Am1
490 $ hg ci -Am1
491 adding e
491 adding e
492 committing subrepository s
492 committing subrepository s
493
493
494 $ hg up 5
494 $ hg up 5
495 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
495 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
496 $ hg merge 4 # try to merge default into br again
496 $ hg merge 4 # try to merge default into br again
497 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
497 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
498 (branch merge, don't forget to commit)
498 (branch merge, don't forget to commit)
499 $ cd ..
499 $ cd ..
500
500
501 test subrepo delete from .hgsubstate
501 test subrepo delete from .hgsubstate
502
502
503 $ hg init testdelete
503 $ hg init testdelete
504 $ mkdir testdelete/nested testdelete/nested2
504 $ mkdir testdelete/nested testdelete/nested2
505 $ hg init testdelete/nested
505 $ hg init testdelete/nested
506 $ hg init testdelete/nested2
506 $ hg init testdelete/nested2
507 $ echo test > testdelete/nested/foo
507 $ echo test > testdelete/nested/foo
508 $ echo test > testdelete/nested2/foo
508 $ echo test > testdelete/nested2/foo
509 $ hg -R testdelete/nested add
509 $ hg -R testdelete/nested add
510 adding testdelete/nested/foo
510 adding testdelete/nested/foo
511 $ hg -R testdelete/nested2 add
511 $ hg -R testdelete/nested2 add
512 adding testdelete/nested2/foo
512 adding testdelete/nested2/foo
513 $ hg -R testdelete/nested ci -m test
513 $ hg -R testdelete/nested ci -m test
514 $ hg -R testdelete/nested2 ci -m test
514 $ hg -R testdelete/nested2 ci -m test
515 $ echo nested = nested > testdelete/.hgsub
515 $ echo nested = nested > testdelete/.hgsub
516 $ echo nested2 = nested2 >> testdelete/.hgsub
516 $ echo nested2 = nested2 >> testdelete/.hgsub
517 $ hg -R testdelete add
517 $ hg -R testdelete add
518 adding testdelete/.hgsub
518 adding testdelete/.hgsub
519 $ hg -R testdelete ci -m "nested 1 & 2 added"
519 $ hg -R testdelete ci -m "nested 1 & 2 added"
520 committing subrepository nested
520 committing subrepository nested
521 committing subrepository nested2
521 committing subrepository nested2
522 $ echo nested = nested > testdelete/.hgsub
522 $ echo nested = nested > testdelete/.hgsub
523 $ hg -R testdelete ci -m "nested 2 deleted"
523 $ hg -R testdelete ci -m "nested 2 deleted"
524 $ cat testdelete/.hgsubstate
524 $ cat testdelete/.hgsubstate
525 bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
525 bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
526 $ hg -R testdelete remove testdelete/.hgsub
526 $ hg -R testdelete remove testdelete/.hgsub
527 $ hg -R testdelete ci -m ".hgsub deleted"
527 $ hg -R testdelete ci -m ".hgsub deleted"
528 $ cat testdelete/.hgsubstate
528 $ cat testdelete/.hgsubstate
529 bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
529 bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
530
530
531 test repository cloning
531 test repository cloning
532
532
533 $ mkdir mercurial mercurial2
533 $ mkdir mercurial mercurial2
534 $ hg init nested_absolute
534 $ hg init nested_absolute
535 $ echo test > nested_absolute/foo
535 $ echo test > nested_absolute/foo
536 $ hg -R nested_absolute add
536 $ hg -R nested_absolute add
537 adding nested_absolute/foo
537 adding nested_absolute/foo
538 $ hg -R nested_absolute ci -mtest
538 $ hg -R nested_absolute ci -mtest
539 $ cd mercurial
539 $ cd mercurial
540 $ hg init nested_relative
540 $ hg init nested_relative
541 $ echo test2 > nested_relative/foo2
541 $ echo test2 > nested_relative/foo2
542 $ hg -R nested_relative add
542 $ hg -R nested_relative add
543 adding nested_relative/foo2
543 adding nested_relative/foo2
544 $ hg -R nested_relative ci -mtest2
544 $ hg -R nested_relative ci -mtest2
545 $ hg init main
545 $ hg init main
546 $ echo "nested_relative = ../nested_relative" > main/.hgsub
546 $ echo "nested_relative = ../nested_relative" > main/.hgsub
547 $ echo "nested_absolute = `pwd`/nested_absolute" >> main/.hgsub
547 $ echo "nested_absolute = `pwd`/nested_absolute" >> main/.hgsub
548 $ hg -R main add
548 $ hg -R main add
549 adding main/.hgsub
549 adding main/.hgsub
550 $ hg -R main ci -m "add subrepos"
550 $ hg -R main ci -m "add subrepos"
551 committing subrepository nested_absolute
551 committing subrepository nested_absolute
552 committing subrepository nested_relative
552 committing subrepository nested_relative
553 $ cd ..
553 $ cd ..
554 $ hg clone mercurial/main mercurial2/main
554 $ hg clone mercurial/main mercurial2/main
555 updating to branch default
555 updating to branch default
556 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
556 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
557 $ cat mercurial2/main/nested_absolute/.hg/hgrc \
557 $ cat mercurial2/main/nested_absolute/.hg/hgrc \
558 > mercurial2/main/nested_relative/.hg/hgrc
558 > mercurial2/main/nested_relative/.hg/hgrc
559 [paths]
559 [paths]
560 default = $TESTTMP/sub/mercurial/nested_absolute
560 default = $TESTTMP/sub/mercurial/nested_absolute
561 [paths]
561 [paths]
562 default = $TESTTMP/sub/mercurial/nested_relative
562 default = $TESTTMP/sub/mercurial/nested_relative
563 $ rm -rf mercurial mercurial2
563 $ rm -rf mercurial mercurial2
564
564
565 Issue1977: multirepo push should fail if subrepo push fails
565 Issue1977: multirepo push should fail if subrepo push fails
566
566
567 $ hg init repo
567 $ hg init repo
568 $ hg init repo/s
568 $ hg init repo/s
569 $ echo a > repo/s/a
569 $ echo a > repo/s/a
570 $ hg -R repo/s ci -Am0
570 $ hg -R repo/s ci -Am0
571 adding a
571 adding a
572 $ echo s = s > repo/.hgsub
572 $ echo s = s > repo/.hgsub
573 $ hg -R repo ci -Am1
573 $ hg -R repo ci -Am1
574 adding .hgsub
574 adding .hgsub
575 committing subrepository s
575 committing subrepository s
576 $ hg clone repo repo2
576 $ hg clone repo repo2
577 updating to branch default
577 updating to branch default
578 cloning subrepo s from $TESTTMP/sub/repo/s
578 cloning subrepo s from $TESTTMP/sub/repo/s
579 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
579 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
580 $ hg -q -R repo2 pull -u
580 $ hg -q -R repo2 pull -u
581 $ echo 1 > repo2/s/a
581 $ echo 1 > repo2/s/a
582 $ hg -R repo2/s ci -m2
582 $ hg -R repo2/s ci -m2
583 $ hg -q -R repo2/s push
583 $ hg -q -R repo2/s push
584 $ hg -R repo2/s up -C 0
584 $ hg -R repo2/s up -C 0
585 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
585 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
586 $ echo 2 > repo2/s/a
586 $ echo 2 > repo2/s/a
587 $ hg -R repo2/s ci -m3
587 $ hg -R repo2/s ci -m3
588 created new head
588 created new head
589 $ hg -R repo2 ci -m3
589 $ hg -R repo2 ci -m3
590 committing subrepository s
590 committing subrepository s
591 $ hg -q -R repo2 push
591 $ hg -q -R repo2 push
592 abort: push creates new remote head 9d66565e64e1!
592 abort: push creates new remote head 9d66565e64e1!
593 (did you forget to merge? use push -f to force)
593 (did you forget to merge? use push -f to force)
594 [255]
594 [255]
595 $ hg -R repo update
595 $ hg -R repo update
596 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
596 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
597 $ rm -rf repo2 repo
597 $ rm -rf repo2 repo
598
598
599
599
600 Issue1852 subrepos with relative paths always push/pull relative to default
600 Issue1852 subrepos with relative paths always push/pull relative to default
601
601
602 Prepare a repo with subrepo
602 Prepare a repo with subrepo
603
603
604 $ hg init issue1852a
604 $ hg init issue1852a
605 $ cd issue1852a
605 $ cd issue1852a
606 $ hg init sub/repo
606 $ hg init sub/repo
607 $ echo test > sub/repo/foo
607 $ echo test > sub/repo/foo
608 $ hg -R sub/repo add sub/repo/foo
608 $ hg -R sub/repo add sub/repo/foo
609 $ echo sub/repo = sub/repo > .hgsub
609 $ echo sub/repo = sub/repo > .hgsub
610 $ hg add .hgsub
610 $ hg add .hgsub
611 $ hg ci -mtest
611 $ hg ci -mtest
612 committing subrepository sub/repo
612 committing subrepository sub/repo
613 $ echo test >> sub/repo/foo
613 $ echo test >> sub/repo/foo
614 $ hg ci -mtest
614 $ hg ci -mtest
615 committing subrepository sub/repo
615 committing subrepository sub/repo
616 $ cd ..
616 $ cd ..
617
617
618 Create repo without default path, pull top repo, and see what happens on update
618 Create repo without default path, pull top repo, and see what happens on update
619
619
620 $ hg init issue1852b
620 $ hg init issue1852b
621 $ hg -R issue1852b pull issue1852a
621 $ hg -R issue1852b pull issue1852a
622 pulling from issue1852a
622 pulling from issue1852a
623 requesting all changes
623 requesting all changes
624 adding changesets
624 adding changesets
625 adding manifests
625 adding manifests
626 adding file changes
626 adding file changes
627 added 2 changesets with 3 changes to 2 files
627 added 2 changesets with 3 changes to 2 files
628 (run 'hg update' to get a working copy)
628 (run 'hg update' to get a working copy)
629 $ hg -R issue1852b update
629 $ hg -R issue1852b update
630 abort: default path for subrepository sub/repo not found
630 abort: default path for subrepository sub/repo not found
631 [255]
631 [255]
632
632
633 Pull -u now doesn't help
633 Pull -u now doesn't help
634
634
635 $ hg -R issue1852b pull -u issue1852a
635 $ hg -R issue1852b pull -u issue1852a
636 pulling from issue1852a
636 pulling from issue1852a
637 searching for changes
637 searching for changes
638 no changes found
638 no changes found
639
639
640 Try the same, but with pull -u
640 Try the same, but with pull -u
641
641
642 $ hg init issue1852c
642 $ hg init issue1852c
643 $ hg -R issue1852c pull -r0 -u issue1852a
643 $ hg -R issue1852c pull -r0 -u issue1852a
644 pulling from issue1852a
644 pulling from issue1852a
645 adding changesets
645 adding changesets
646 adding manifests
646 adding manifests
647 adding file changes
647 adding file changes
648 added 1 changesets with 2 changes to 2 files
648 added 1 changesets with 2 changes to 2 files
649 cloning subrepo sub/repo from issue1852a/sub/repo
649 cloning subrepo sub/repo from issue1852a/sub/repo
650 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
650 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
651
651
652 Try to push from the other side
652 Try to push from the other side
653
653
654 $ hg -R issue1852a push `pwd`/issue1852c
654 $ hg -R issue1852a push `pwd`/issue1852c
655 pushing to $TESTTMP/sub/issue1852c
655 pushing to $TESTTMP/sub/issue1852c
656 pushing subrepo sub/repo to $TESTTMP/sub/issue1852c/sub/repo
656 pushing subrepo sub/repo to $TESTTMP/sub/issue1852c/sub/repo
657 searching for changes
657 searching for changes
658 no changes found
658 no changes found
659 searching for changes
659 searching for changes
660 adding changesets
660 adding changesets
661 adding manifests
661 adding manifests
662 adding file changes
662 adding file changes
663 added 1 changesets with 1 changes to 1 files
663 added 1 changesets with 1 changes to 1 files
664
664
665 Incoming and outgoing should not use the default path:
665 Incoming and outgoing should not use the default path:
666
666
667 $ hg clone -q issue1852a issue1852d
667 $ hg clone -q issue1852a issue1852d
668 $ hg -R issue1852d outgoing --subrepos issue1852c
668 $ hg -R issue1852d outgoing --subrepos issue1852c
669 comparing with issue1852c
669 comparing with issue1852c
670 searching for changes
670 searching for changes
671 no changes found
671 no changes found
672 comparing with issue1852c/sub/repo
672 comparing with issue1852c/sub/repo
673 searching for changes
673 searching for changes
674 no changes found
674 no changes found
675 [1]
675 [1]
676 $ hg -R issue1852d incoming --subrepos issue1852c
676 $ hg -R issue1852d incoming --subrepos issue1852c
677 comparing with issue1852c
677 comparing with issue1852c
678 searching for changes
678 searching for changes
679 no changes found
679 no changes found
680 comparing with issue1852c/sub/repo
680 comparing with issue1852c/sub/repo
681 searching for changes
681 searching for changes
682 no changes found
682 no changes found
683 [1]
683 [1]
684
684
685 Check status of files when none of them belong to the first
685 Check status of files when none of them belong to the first
686 subrepository:
686 subrepository:
687
687
688 $ hg init subrepo-status
688 $ hg init subrepo-status
689 $ cd subrepo-status
689 $ cd subrepo-status
690 $ hg init subrepo-1
690 $ hg init subrepo-1
691 $ hg init subrepo-2
691 $ hg init subrepo-2
692 $ cd subrepo-2
692 $ cd subrepo-2
693 $ touch file
693 $ touch file
694 $ hg add file
694 $ hg add file
695 $ cd ..
695 $ cd ..
696 $ echo subrepo-1 = subrepo-1 > .hgsub
696 $ echo subrepo-1 = subrepo-1 > .hgsub
697 $ echo subrepo-2 = subrepo-2 >> .hgsub
697 $ echo subrepo-2 = subrepo-2 >> .hgsub
698 $ hg add .hgsub
698 $ hg add .hgsub
699 $ hg ci -m 'Added subrepos'
699 $ hg ci -m 'Added subrepos'
700 committing subrepository subrepo-1
700 committing subrepository subrepo-1
701 committing subrepository subrepo-2
701 committing subrepository subrepo-2
702 $ hg st subrepo-2/file
702 $ hg st subrepo-2/file
703
703
704 Check hg update --clean
704 Check hg update --clean
705 $ cd $TESTTMP/sub/t
705 $ cd $TESTTMP/sub/t
706 $ rm -r t/t.orig
706 $ rm -r t/t.orig
707 $ hg status -S --all
707 $ hg status -S --all
708 C .hgsub
708 C .hgsub
709 C .hgsubstate
709 C .hgsubstate
710 C a
710 C a
711 C s/.hgsub
711 C s/.hgsub
712 C s/.hgsubstate
712 C s/.hgsubstate
713 C s/a
713 C s/a
714 C s/ss/a
714 C s/ss/a
715 C t/t
715 C t/t
716 $ echo c1 > s/a
716 $ echo c1 > s/a
717 $ cd s
717 $ cd s
718 $ echo c1 > b
718 $ echo c1 > b
719 $ echo c1 > c
719 $ echo c1 > c
720 $ hg add b
720 $ hg add b
721 $ cd ..
721 $ cd ..
722 $ hg status -S
722 $ hg status -S
723 M s/a
723 M s/a
724 A s/b
724 A s/b
725 ? s/c
725 ? s/c
726 $ hg update -C
726 $ hg update -C
727 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
727 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
728 $ hg status -S
728 $ hg status -S
729 ? s/b
729 ? s/b
730 ? s/c
730 ? s/c
731
731
732 Sticky subrepositories, no changes
732 Sticky subrepositories, no changes
733 $ cd $TESTTMP/sub/t
733 $ cd $TESTTMP/sub/t
734 $ hg id
734 $ hg id
735 925c17564ef8 tip
735 925c17564ef8 tip
736 $ hg -R s id
736 $ hg -R s id
737 12a213df6fa9 tip
737 12a213df6fa9 tip
738 $ hg -R t id
738 $ hg -R t id
739 52c0adc0515a tip
739 52c0adc0515a tip
740 $ hg update 11
740 $ hg update 11
741 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
741 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
742 $ hg id
742 $ hg id
743 365661e5936a
743 365661e5936a
744 $ hg -R s id
744 $ hg -R s id
745 fc627a69481f
745 fc627a69481f
746 $ hg -R t id
746 $ hg -R t id
747 e95bcfa18a35
747 e95bcfa18a35
748
748
749 Sticky subrepositorys, file changes
749 Sticky subrepositorys, file changes
750 $ touch s/f1
750 $ touch s/f1
751 $ touch t/f1
751 $ touch t/f1
752 $ hg add -S s/f1
752 $ hg add -S s/f1
753 $ hg add -S t/f1
753 $ hg add -S t/f1
754 $ hg id
754 $ hg id
755 365661e5936a
755 365661e5936a
756 $ hg -R s id
756 $ hg -R s id
757 fc627a69481f+
757 fc627a69481f+
758 $ hg -R t id
758 $ hg -R t id
759 e95bcfa18a35+
759 e95bcfa18a35+
760 $ hg update tip
760 $ hg update tip
761 subrepository sources for s differ
761 subrepository sources for s differ
762 use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)?
762 use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)?
763 l
763 l
764 subrepository sources for t differ
764 subrepository sources for t differ
765 use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)?
765 use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)?
766 l
766 l
767 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
767 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
768 $ hg id
768 $ hg id
769 925c17564ef8+ tip
769 925c17564ef8+ tip
770 $ hg -R s id
770 $ hg -R s id
771 fc627a69481f+
771 fc627a69481f+
772 $ hg -R t id
772 $ hg -R t id
773 e95bcfa18a35+
773 e95bcfa18a35+
774 $ hg update --clean tip
774 $ hg update --clean tip
775 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
775 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
776
776
777 Sticky subrepository, revision updates
777 Sticky subrepository, revision updates
778 $ hg id
778 $ hg id
779 925c17564ef8 tip
779 925c17564ef8 tip
780 $ hg -R s id
780 $ hg -R s id
781 12a213df6fa9 tip
781 12a213df6fa9 tip
782 $ hg -R t id
782 $ hg -R t id
783 52c0adc0515a tip
783 52c0adc0515a tip
784 $ cd s
784 $ cd s
785 $ hg update -r -2
785 $ hg update -r -2
786 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
786 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
787 $ cd ../t
787 $ cd ../t
788 $ hg update -r 2
788 $ hg update -r 2
789 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
789 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
790 $ cd ..
790 $ cd ..
791 $ hg update 10
791 $ hg update 10
792 subrepository sources for t differ (in checked out version)
792 subrepository sources for t differ (in checked out version)
793 use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)?
793 use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)?
794 l
794 l
795 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
795 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
796 $ hg id
796 $ hg id
797 e45c8b14af55+
797 e45c8b14af55+
798 $ hg -R s id
798 $ hg -R s id
799 1c833a7a9e3a
799 1c833a7a9e3a
800 $ hg -R t id
800 $ hg -R t id
801 7af322bc1198
801 7af322bc1198
802
802
803 Sticky subrepository, file changes and revision updates
803 Sticky subrepository, file changes and revision updates
804 $ touch s/f1
804 $ touch s/f1
805 $ touch t/f1
805 $ touch t/f1
806 $ hg add -S s/f1
806 $ hg add -S s/f1
807 $ hg add -S t/f1
807 $ hg add -S t/f1
808 $ hg id
808 $ hg id
809 e45c8b14af55+
809 e45c8b14af55+
810 $ hg -R s id
810 $ hg -R s id
811 1c833a7a9e3a+
811 1c833a7a9e3a+
812 $ hg -R t id
812 $ hg -R t id
813 7af322bc1198+
813 7af322bc1198+
814 $ hg update tip
814 $ hg update tip
815 subrepository sources for s differ
815 subrepository sources for s differ
816 use (l)ocal source (1c833a7a9e3a) or (r)emote source (12a213df6fa9)?
816 use (l)ocal source (1c833a7a9e3a) or (r)emote source (12a213df6fa9)?
817 l
817 l
818 subrepository sources for t differ
818 subrepository sources for t differ
819 use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)?
819 use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)?
820 l
820 l
821 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
821 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
822 $ hg id
822 $ hg id
823 925c17564ef8 tip
823 925c17564ef8 tip
824 $ hg -R s id
824 $ hg -R s id
825 1c833a7a9e3a+
825 1c833a7a9e3a+
826 $ hg -R t id
826 $ hg -R t id
827 7af322bc1198+
827 7af322bc1198+
828
828
829 Sticky repository, update --clean
829 Sticky repository, update --clean
830 $ hg update --clean tip
830 $ hg update --clean tip
831 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
831 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
832 $ hg id
832 $ hg id
833 925c17564ef8 tip
833 925c17564ef8 tip
834 $ hg -R s id
834 $ hg -R s id
835 12a213df6fa9 tip
835 12a213df6fa9 tip
836 $ hg -R t id
836 $ hg -R t id
837 52c0adc0515a tip
837 52c0adc0515a tip
838
838
839 Test subrepo already at intended revision:
839 Test subrepo already at intended revision:
840 $ cd s
840 $ cd s
841 $ hg update fc627a69481f
841 $ hg update fc627a69481f
842 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
842 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
843 $ cd ..
843 $ cd ..
844 $ hg update 11
844 $ hg update 11
845 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
845 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
846 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
846 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
847 $ hg id -n
847 $ hg id -n
848 11+
848 11+
849 $ hg -R s id
849 $ hg -R s id
850 fc627a69481f
850 fc627a69481f
851 $ hg -R t id
851 $ hg -R t id
852 e95bcfa18a35
852 e95bcfa18a35
853
853
854 Test that removing .hgsubstate doesn't break anything:
854 Test that removing .hgsubstate doesn't break anything:
855
855
856 $ hg rm -f .hgsubstate
856 $ hg rm -f .hgsubstate
857 $ hg ci -mrm
857 $ hg ci -mrm
858 committing subrepository s
858 committing subrepository s
859 committing subrepository t
859 committing subrepository t
860 created new head
860 created new head
861 $ hg log -vr tip
861 $ hg log -vr tip
862 changeset: 14:3941e0aa5236
862 changeset: 14:3941e0aa5236
863 tag: tip
863 tag: tip
864 parent: 11:365661e5936a
864 parent: 11:365661e5936a
865 user: test
865 user: test
866 date: Thu Jan 01 00:00:00 1970 +0000
866 date: Thu Jan 01 00:00:00 1970 +0000
867 description:
867 description:
868 rm
868 rm
869
869
870
870
871
871
872 Test that removing .hgsub removes .hgsubstate:
872 Test that removing .hgsub removes .hgsubstate:
873
873
874 $ hg rm .hgsub
874 $ hg rm .hgsub
875 $ hg ci -mrm2
875 $ hg ci -mrm2
876 $ hg log -vr tip
876 $ hg log -vr tip
877 changeset: 15:8b31de9d13d1
877 changeset: 15:8b31de9d13d1
878 tag: tip
878 tag: tip
879 user: test
879 user: test
880 date: Thu Jan 01 00:00:00 1970 +0000
880 date: Thu Jan 01 00:00:00 1970 +0000
881 files: .hgsub .hgsubstate
881 files: .hgsub .hgsubstate
882 description:
882 description:
883 rm2
883 rm2
884
884
885
885
886 Test behavior of add for explicit path in subrepo:
887 $ cd ..
888 $ hg init addtests
889 $ cd addtests
890 $ echo s = s > .hgsub
891 $ hg add .hgsub
892 $ hg init s
893 $ hg ci -m0
894 committing subrepository s
895 Adding with an explicit path in a subrepo currently fails silently
896 $ echo c1 > f1
897 $ echo c2 > s/f2
898 $ hg st -S
899 ? f1
900 ? s/f2
901 $ hg add s/f2
902 $ hg st -S
903 ? f1
904 ? s/f2
905 $ hg ci -R s -Am0
906 adding f2
907 $ hg ci -Am1
908 adding f1
909 committing subrepository s
910 Adding with an explicit path in a subrepo with -S adds the file
911 $ echo c3 > f3
912 $ echo c4 > s/f4
913 $ hg st -S
914 ? f3
915 ? s/f4
916 $ hg add -S s/f4
917 $ hg st -S
918 A s/f4
919 ? f3
920 $ hg ci -R s -m1
921 $ hg ci -Ama2
922 adding f3
923 committing subrepository s
924 Adding without a path or pattern silently ignores subrepos
925 $ echo c5 > f5
926 $ echo c6 > s/f6
927 $ echo c7 > s/f7
928 $ hg st -S
929 ? f5
930 ? s/f6
931 ? s/f7
932 $ hg add
933 adding f5
934 $ hg st -S
935 A f5
936 ? s/f6
937 ? s/f7
938 $ hg ci -R s -Am2
939 adding f6
940 adding f7
941 $ hg ci -m3
942 committing subrepository s
943 Adding without a path or pattern with -S also adds files in subrepos
944 $ echo c8 > f8
945 $ echo c9 > s/f9
946 $ echo c10 > s/f10
947 $ hg st -S
948 ? f8
949 ? s/f10
950 ? s/f9
951 $ hg add -S
952 adding f8
953 adding s/f10
954 adding s/f9
955 $ hg st -S
956 A f8
957 A s/f10
958 A s/f9
959 $ hg ci -R s -m3
960 $ hg ci -m4
961 committing subrepository s
962 Adding with a pattern silently ignores subrepos
963 $ echo c11 > fm11
964 $ echo c12 > fn12
965 $ echo c13 > s/fm13
966 $ echo c14 > s/fn14
967 $ hg st -S
968 ? fm11
969 ? fn12
970 ? s/fm13
971 ? s/fn14
972 $ hg add 'glob:**fm*'
973 adding fm11
974 $ hg st -S
975 A fm11
976 ? fn12
977 ? s/fm13
978 ? s/fn14
979 $ hg ci -R s -Am4
980 adding fm13
981 adding fn14
982 $ hg ci -Am5
983 adding fn12
984 committing subrepository s
985 Adding with a pattern with -S also adds matches in subrepos
986 $ echo c15 > fm15
987 $ echo c16 > fn16
988 $ echo c17 > s/fm17
989 $ echo c18 > s/fn18
990 $ hg st -S
991 ? fm15
992 ? fn16
993 ? s/fm17
994 ? s/fn18
995 $ hg add -S 'glob:**fm*'
996 adding fm15
997 adding s/fm17
998 $ hg st -S
999 A fm15
1000 A s/fm17
1001 ? fn16
1002 ? s/fn18
1003 $ hg ci -R s -Am5
1004 adding fn18
1005 $ hg ci -Am6
1006 adding fn16
1007 committing subrepository s
1008 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now