##// END OF EJS Templates
subrepo: fix test breakage introduced in 2b34d004e644...
Kevin Bullock -
r19049:2e547698 default
parent child Browse files
Show More
@@ -1,559 +1,560 b''
1 1 $ "$TESTDIR/hghave" git || exit 80
2 2
3 3 make git commits repeatable
4 4
5 5 $ echo "[core]" >> $HOME/.gitconfig
6 6 $ echo "autocrlf = false" >> $HOME/.gitconfig
7 7 $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
8 8 $ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
9 9 $ GIT_AUTHOR_DATE='1234567891 +0000'; export GIT_AUTHOR_DATE
10 10 $ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
11 11 $ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
12 12 $ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
13 13
14 14 root hg repo
15 15
16 16 $ hg init t
17 17 $ cd t
18 18 $ echo a > a
19 19 $ hg add a
20 20 $ hg commit -m a
21 21 $ cd ..
22 22
23 23 new external git repo
24 24
25 25 $ mkdir gitroot
26 26 $ cd gitroot
27 27 $ git init -q
28 28 $ echo g > g
29 29 $ git add g
30 30 $ git commit -q -m g
31 31
32 32 add subrepo clone
33 33
34 34 $ cd ../t
35 35 $ echo 's = [git]../gitroot' > .hgsub
36 36 $ git clone -q ../gitroot s
37 37 $ hg add .hgsub
38 38 $ hg commit -m 'new git subrepo'
39 39 $ hg debugsub
40 40 path s
41 41 source ../gitroot
42 42 revision da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
43 43
44 44 record a new commit from upstream from a different branch
45 45
46 46 $ cd ../gitroot
47 47 $ git checkout -q -b testing
48 48 $ echo gg >> g
49 49 $ git commit -q -a -m gg
50 50
51 51 $ cd ../t/s
52 52 $ git pull -q >/dev/null 2>/dev/null
53 53 $ git checkout -q -b testing origin/testing >/dev/null
54 54
55 55 $ cd ..
56 56 $ hg status --subrepos
57 57 M s/g
58 58 $ hg commit -m 'update git subrepo'
59 59 $ hg debugsub
60 60 path s
61 61 source ../gitroot
62 62 revision 126f2a14290cd5ce061fdedc430170e8d39e1c5a
63 63
64 64 make $GITROOT pushable, by replacing it with a clone with nothing checked out
65 65
66 66 $ cd ..
67 67 $ git clone gitroot gitrootbare --bare -q
68 68 $ rm -rf gitroot
69 69 $ mv gitrootbare gitroot
70 70
71 71 clone root
72 72
73 73 $ cd t
74 74 $ hg clone . ../tc
75 75 updating to branch default
76 76 cloning subrepo s from $TESTTMP/gitroot
77 77 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
78 78 $ cd ../tc
79 79 $ hg debugsub
80 80 path s
81 81 source ../gitroot
82 82 revision 126f2a14290cd5ce061fdedc430170e8d39e1c5a
83 83
84 84 update to previous substate
85 85
86 86 $ hg update 1 -q
87 87 $ cat s/g
88 88 g
89 89 $ hg debugsub
90 90 path s
91 91 source ../gitroot
92 92 revision da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
93 93
94 94 clone root, make local change
95 95
96 96 $ cd ../t
97 97 $ hg clone . ../ta
98 98 updating to branch default
99 99 cloning subrepo s from $TESTTMP/gitroot
100 100 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
101 101
102 102 $ cd ../ta
103 103 $ echo ggg >> s/g
104 104 $ hg status --subrepos
105 105 M s/g
106 106 $ hg commit --subrepos -m ggg
107 107 committing subrepository s
108 108 $ hg debugsub
109 109 path s
110 110 source ../gitroot
111 111 revision 79695940086840c99328513acbe35f90fcd55e57
112 112
113 113 clone root separately, make different local change
114 114
115 115 $ cd ../t
116 116 $ hg clone . ../tb
117 117 updating to branch default
118 118 cloning subrepo s from $TESTTMP/gitroot
119 119 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
120 120
121 121 $ cd ../tb/s
122 122 $ echo f > f
123 123 $ git add f
124 124 $ cd ..
125 125
126 126 $ hg status --subrepos
127 127 A s/f
128 128 $ hg commit --subrepos -m f
129 129 committing subrepository s
130 130 $ hg debugsub
131 131 path s
132 132 source ../gitroot
133 133 revision aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
134 134
135 135 user b push changes
136 136
137 137 $ hg push 2>/dev/null
138 138 pushing to $TESTTMP/t (glob)
139 139 pushing branch testing of subrepo s
140 140 searching for changes
141 141 adding changesets
142 142 adding manifests
143 143 adding file changes
144 144 added 1 changesets with 1 changes to 1 files
145 145
146 146 user a pulls, merges, commits
147 147
148 148 $ cd ../ta
149 149 $ hg pull
150 150 pulling from $TESTTMP/t (glob)
151 151 searching for changes
152 152 adding changesets
153 153 adding manifests
154 154 adding file changes
155 155 added 1 changesets with 1 changes to 1 files (+1 heads)
156 156 (run 'hg heads' to see heads, 'hg merge' to merge)
157 157 $ hg merge 2>/dev/null
158 158 pulling subrepo s from $TESTTMP/gitroot
159 159 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
160 160 (branch merge, don't forget to commit)
161 161 $ cat s/f
162 162 f
163 163 $ cat s/g
164 164 g
165 165 gg
166 166 ggg
167 167 $ hg commit --subrepos -m 'merge'
168 168 committing subrepository s
169 169 $ hg status --subrepos --rev 1:5
170 170 M .hgsubstate
171 171 M s/g
172 172 A s/f
173 173 $ hg debugsub
174 174 path s
175 175 source ../gitroot
176 176 revision f47b465e1bce645dbf37232a00574aa1546ca8d3
177 177 $ hg push 2>/dev/null
178 178 pushing to $TESTTMP/t (glob)
179 179 pushing branch testing of subrepo s
180 180 searching for changes
181 181 adding changesets
182 182 adding manifests
183 183 adding file changes
184 184 added 2 changesets with 2 changes to 1 files
185 185
186 186 make upstream git changes
187 187
188 188 $ cd ..
189 189 $ git clone -q gitroot gitclone
190 190 $ cd gitclone
191 191 $ echo ff >> f
192 192 $ git commit -q -a -m ff
193 193 $ echo fff >> f
194 194 $ git commit -q -a -m fff
195 195 $ git push origin testing 2>/dev/null
196 196
197 197 make and push changes to hg without updating the subrepo
198 198
199 199 $ cd ../t
200 200 $ hg clone . ../td
201 201 updating to branch default
202 202 cloning subrepo s from $TESTTMP/gitroot
203 203 checking out detached HEAD in subrepo s
204 204 check out a git branch if you intend to make changes
205 205 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
206 206 $ cd ../td
207 207 $ echo aa >> a
208 208 $ hg commit -m aa
209 209 $ hg push
210 210 pushing to $TESTTMP/t (glob)
211 211 searching for changes
212 212 adding changesets
213 213 adding manifests
214 214 adding file changes
215 215 added 1 changesets with 1 changes to 1 files
216 216
217 217 sync to upstream git, distribute changes
218 218
219 219 $ cd ../ta
220 220 $ hg pull -u -q
221 221 $ cd s
222 222 $ git pull -q >/dev/null 2>/dev/null
223 223 $ cd ..
224 224 $ hg commit -m 'git upstream sync'
225 225 $ hg debugsub
226 226 path s
227 227 source ../gitroot
228 228 revision 32a343883b74769118bb1d3b4b1fbf9156f4dddc
229 229 $ hg push -q
230 230
231 231 $ cd ../tb
232 232 $ hg pull -q
233 233 $ hg update 2>/dev/null
234 234 pulling subrepo s from $TESTTMP/gitroot
235 235 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
236 236 $ hg debugsub
237 237 path s
238 238 source ../gitroot
239 239 revision 32a343883b74769118bb1d3b4b1fbf9156f4dddc
240 240
241 241 create a new git branch
242 242
243 243 $ cd s
244 244 $ git checkout -b b2
245 245 Switched to a new branch 'b2'
246 246 $ echo a>a
247 247 $ git add a
248 248 $ git commit -qm 'add a'
249 249 $ cd ..
250 250 $ hg commit -m 'add branch in s'
251 251
252 252 pulling new git branch should not create tracking branch named 'origin/b2'
253 253 (issue3870)
254 254 $ cd ../td/s
255 255 $ git remote set-url origin $TESTTMP/tb/s
256 $ git branch --no-track oldtesting
256 257 $ cd ..
257 258 $ hg pull -q ../tb
258 259 $ hg up
259 260 From $TESTTMP/tb/s
260 261 * [new branch] b2 -> origin/b2
261 262 Previous HEAD position was f47b465... merge
262 263 Switched to a new branch 'b2'
263 264 pulling subrepo s from $TESTTMP/tb/s
264 265 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
265 266
266 267 update to a revision without the subrepo, keeping the local git repository
267 268
268 269 $ cd ../t
269 270 $ hg up 0
270 271 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
271 272 $ ls -a s
272 273 .
273 274 ..
274 275 .git
275 276
276 277 $ hg up 2
277 278 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
278 279 $ ls -a s
279 280 .
280 281 ..
281 282 .git
282 283 g
283 284
284 285 archive subrepos
285 286
286 287 $ cd ../tc
287 288 $ hg pull -q
288 289 $ hg archive --subrepos -r 5 ../archive 2>/dev/null
289 290 pulling subrepo s from $TESTTMP/gitroot
290 291 $ cd ../archive
291 292 $ cat s/f
292 293 f
293 294 $ cat s/g
294 295 g
295 296 gg
296 297 ggg
297 298
298 299 $ hg -R ../tc archive --subrepo -r 5 -X ../tc/**f ../archive_x 2>/dev/null
299 300 $ find ../archive_x | sort | grep -v pax_global_header
300 301 ../archive_x
301 302 ../archive_x/.hg_archival.txt
302 303 ../archive_x/.hgsub
303 304 ../archive_x/.hgsubstate
304 305 ../archive_x/a
305 306 ../archive_x/s
306 307 ../archive_x/s/g
307 308
308 309 create nested repo
309 310
310 311 $ cd ..
311 312 $ hg init outer
312 313 $ cd outer
313 314 $ echo b>b
314 315 $ hg add b
315 316 $ hg commit -m b
316 317
317 318 $ hg clone ../t inner
318 319 updating to branch default
319 320 cloning subrepo s from $TESTTMP/gitroot
320 321 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
321 322 $ echo inner = inner > .hgsub
322 323 $ hg add .hgsub
323 324 $ hg commit -m 'nested sub'
324 325
325 326 nested commit
326 327
327 328 $ echo ffff >> inner/s/f
328 329 $ hg status --subrepos
329 330 M inner/s/f
330 331 $ hg commit --subrepos -m nested
331 332 committing subrepository inner
332 333 committing subrepository inner/s (glob)
333 334
334 335 nested archive
335 336
336 337 $ hg archive --subrepos ../narchive
337 338 $ ls ../narchive/inner/s | grep -v pax_global_header
338 339 f
339 340 g
340 341
341 342 relative source expansion
342 343
343 344 $ cd ..
344 345 $ mkdir d
345 346 $ hg clone t d/t
346 347 updating to branch default
347 348 cloning subrepo s from $TESTTMP/gitroot
348 349 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
349 350
350 351 Don't crash if the subrepo is missing
351 352
352 353 $ hg clone t missing -q
353 354 $ cd missing
354 355 $ rm -rf s
355 356 $ hg status -S
356 357 $ hg sum | grep commit
357 358 commit: 1 subrepos
358 359 $ hg push -q
359 360 abort: subrepo s is missing (in subrepo s)
360 361 [255]
361 362 $ hg commit --subrepos -qm missing
362 363 abort: subrepo s is missing (in subrepo s)
363 364 [255]
364 365 $ hg update -C
365 366 cloning subrepo s from $TESTTMP/gitroot
366 367 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
367 368 $ hg sum | grep commit
368 369 commit: (clean)
369 370
370 371 Don't crash if the .hgsubstate entry is missing
371 372
372 373 $ hg update 1 -q
373 374 $ hg rm .hgsubstate
374 375 $ hg commit .hgsubstate -m 'no substate'
375 376 nothing changed
376 377 [1]
377 378 $ hg tag -l nosubstate
378 379 $ hg manifest
379 380 .hgsub
380 381 .hgsubstate
381 382 a
382 383
383 384 $ hg status -S
384 385 R .hgsubstate
385 386 $ hg sum | grep commit
386 387 commit: 1 removed, 1 subrepos (new branch head)
387 388
388 389 $ hg commit -m 'restore substate'
389 390 nothing changed
390 391 [1]
391 392 $ hg manifest
392 393 .hgsub
393 394 .hgsubstate
394 395 a
395 396 $ hg sum | grep commit
396 397 commit: 1 removed, 1 subrepos (new branch head)
397 398
398 399 $ hg update -qC nosubstate
399 400 $ ls s
400 401 g
401 402
402 403 issue3109: false positives in git diff-index
403 404
404 405 $ hg update -q
405 406 $ touch -t 200001010000 s/g
406 407 $ hg status --subrepos
407 408 $ touch -t 200001010000 s/g
408 409 $ hg sum | grep commit
409 410 commit: (clean)
410 411
411 412 Check hg update --clean
412 413 $ cd $TESTTMP/ta
413 414 $ echo > s/g
414 415 $ cd s
415 416 $ echo c1 > f1
416 417 $ echo c1 > f2
417 418 $ git add f1
418 419 $ cd ..
419 420 $ hg status -S
420 421 M s/g
421 422 A s/f1
422 423 $ ls s
423 424 f
424 425 f1
425 426 f2
426 427 g
427 428 $ hg update --clean
428 429 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
429 430 $ hg status -S
430 431 $ ls s
431 432 f
432 433 f1
433 434 f2
434 435 g
435 436
436 437 Sticky subrepositories, no changes
437 438 $ cd $TESTTMP/ta
438 439 $ hg id -n
439 440 7
440 441 $ cd s
441 442 $ git rev-parse HEAD
442 443 32a343883b74769118bb1d3b4b1fbf9156f4dddc
443 444 $ cd ..
444 445 $ hg update 1 > /dev/null 2>&1
445 446 $ hg id -n
446 447 1
447 448 $ cd s
448 449 $ git rev-parse HEAD
449 450 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
450 451 $ cd ..
451 452
452 453 Sticky subrepositorys, file changes
453 454 $ touch s/f1
454 455 $ cd s
455 456 $ git add f1
456 457 $ cd ..
457 458 $ hg id -n
458 459 1+
459 460 $ cd s
460 461 $ git rev-parse HEAD
461 462 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
462 463 $ cd ..
463 464 $ hg update 4
464 465 subrepository sources for s differ
465 466 use (l)ocal source (da5f5b1) or (r)emote source (aa84837)?
466 467 l
467 468 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
468 469 $ hg id -n
469 470 4+
470 471 $ cd s
471 472 $ git rev-parse HEAD
472 473 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
473 474 $ cd ..
474 475 $ hg update --clean tip > /dev/null 2>&1
475 476
476 477 Sticky subrepository, revision updates
477 478 $ hg id -n
478 479 7
479 480 $ cd s
480 481 $ git rev-parse HEAD
481 482 32a343883b74769118bb1d3b4b1fbf9156f4dddc
482 483 $ cd ..
483 484 $ cd s
484 485 $ git checkout aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
485 486 Previous HEAD position was 32a3438... fff
486 487 HEAD is now at aa84837... f
487 488 $ cd ..
488 489 $ hg update 1
489 490 subrepository sources for s differ (in checked out version)
490 491 use (l)ocal source (32a3438) or (r)emote source (da5f5b1)?
491 492 l
492 493 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
493 494 $ hg id -n
494 495 1+
495 496 $ cd s
496 497 $ git rev-parse HEAD
497 498 aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
498 499 $ cd ..
499 500
500 501 Sticky subrepository, file changes and revision updates
501 502 $ touch s/f1
502 503 $ cd s
503 504 $ git add f1
504 505 $ git rev-parse HEAD
505 506 aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
506 507 $ cd ..
507 508 $ hg id -n
508 509 1+
509 510 $ hg update 7
510 511 subrepository sources for s differ
511 512 use (l)ocal source (32a3438) or (r)emote source (32a3438)?
512 513 l
513 514 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
514 515 $ hg id -n
515 516 7+
516 517 $ cd s
517 518 $ git rev-parse HEAD
518 519 aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
519 520 $ cd ..
520 521
521 522 Sticky repository, update --clean
522 523 $ hg update --clean tip 2>/dev/null
523 524 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
524 525 $ hg id -n
525 526 7
526 527 $ cd s
527 528 $ git rev-parse HEAD
528 529 32a343883b74769118bb1d3b4b1fbf9156f4dddc
529 530 $ cd ..
530 531
531 532 Test subrepo already at intended revision:
532 533 $ cd s
533 534 $ git checkout 32a343883b74769118bb1d3b4b1fbf9156f4dddc
534 535 HEAD is now at 32a3438... fff
535 536 $ cd ..
536 537 $ hg update 1
537 538 Previous HEAD position was 32a3438... fff
538 539 HEAD is now at da5f5b1... g
539 540 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
540 541 $ hg id -n
541 542 1
542 543 $ cd s
543 544 $ git rev-parse HEAD
544 545 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
545 546 $ cd ..
546 547
547 548 Test forgetting files, not implemented in git subrepo, used to
548 549 traceback
549 550 #if no-windows
550 551 $ hg forget 'notafile*'
551 552 notafile*: No such file or directory
552 553 [1]
553 554 #else
554 555 $ hg forget 'notafile'
555 556 notafile: * (glob)
556 557 [1]
557 558 #endif
558 559
559 560 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now