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