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