##// END OF EJS Templates
tests: update test-strip to pass our import checker
Augie Fackler -
r33989:ed88f90b default
parent child Browse files
Show More
@@ -1,1099 +1,1100
1 1 $ echo "[format]" >> $HGRCPATH
2 2 $ echo "usegeneraldelta=yes" >> $HGRCPATH
3 3 $ echo "[extensions]" >> $HGRCPATH
4 4 $ echo "strip=" >> $HGRCPATH
5 5 $ echo "drawdag=$TESTDIR/drawdag.py" >> $HGRCPATH
6 6
7 7 $ restore() {
8 8 > hg unbundle -q .hg/strip-backup/*
9 9 > rm .hg/strip-backup/*
10 10 > }
11 11 $ teststrip() {
12 12 > hg up -C $1
13 13 > echo % before update $1, strip $2
14 14 > hg parents
15 15 > hg --traceback strip $2
16 16 > echo % after update $1, strip $2
17 17 > hg parents
18 18 > restore
19 19 > }
20 20
21 21 $ hg init test
22 22 $ cd test
23 23
24 24 $ echo foo > bar
25 25 $ hg ci -Ama
26 26 adding bar
27 27
28 28 $ echo more >> bar
29 29 $ hg ci -Amb
30 30
31 31 $ echo blah >> bar
32 32 $ hg ci -Amc
33 33
34 34 $ hg up 1
35 35 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
36 36 $ echo blah >> bar
37 37 $ hg ci -Amd
38 38 created new head
39 39
40 40 $ echo final >> bar
41 41 $ hg ci -Ame
42 42
43 43 $ hg log
44 44 changeset: 4:443431ffac4f
45 45 tag: tip
46 46 user: test
47 47 date: Thu Jan 01 00:00:00 1970 +0000
48 48 summary: e
49 49
50 50 changeset: 3:65bd5f99a4a3
51 51 parent: 1:ef3a871183d7
52 52 user: test
53 53 date: Thu Jan 01 00:00:00 1970 +0000
54 54 summary: d
55 55
56 56 changeset: 2:264128213d29
57 57 user: test
58 58 date: Thu Jan 01 00:00:00 1970 +0000
59 59 summary: c
60 60
61 61 changeset: 1:ef3a871183d7
62 62 user: test
63 63 date: Thu Jan 01 00:00:00 1970 +0000
64 64 summary: b
65 65
66 66 changeset: 0:9ab35a2d17cb
67 67 user: test
68 68 date: Thu Jan 01 00:00:00 1970 +0000
69 69 summary: a
70 70
71 71
72 72 $ teststrip 4 4
73 73 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
74 74 % before update 4, strip 4
75 75 changeset: 4:443431ffac4f
76 76 tag: tip
77 77 user: test
78 78 date: Thu Jan 01 00:00:00 1970 +0000
79 79 summary: e
80 80
81 81 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
82 82 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
83 83 % after update 4, strip 4
84 84 changeset: 3:65bd5f99a4a3
85 85 tag: tip
86 86 parent: 1:ef3a871183d7
87 87 user: test
88 88 date: Thu Jan 01 00:00:00 1970 +0000
89 89 summary: d
90 90
91 91 $ teststrip 4 3
92 92 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
93 93 % before update 4, strip 3
94 94 changeset: 4:443431ffac4f
95 95 tag: tip
96 96 user: test
97 97 date: Thu Jan 01 00:00:00 1970 +0000
98 98 summary: e
99 99
100 100 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
101 101 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
102 102 % after update 4, strip 3
103 103 changeset: 1:ef3a871183d7
104 104 user: test
105 105 date: Thu Jan 01 00:00:00 1970 +0000
106 106 summary: b
107 107
108 108 $ teststrip 1 4
109 109 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
110 110 % before update 1, strip 4
111 111 changeset: 1:ef3a871183d7
112 112 user: test
113 113 date: Thu Jan 01 00:00:00 1970 +0000
114 114 summary: b
115 115
116 116 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
117 117 % after update 1, strip 4
118 118 changeset: 1:ef3a871183d7
119 119 user: test
120 120 date: Thu Jan 01 00:00:00 1970 +0000
121 121 summary: b
122 122
123 123 $ teststrip 4 2
124 124 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
125 125 % before update 4, strip 2
126 126 changeset: 4:443431ffac4f
127 127 tag: tip
128 128 user: test
129 129 date: Thu Jan 01 00:00:00 1970 +0000
130 130 summary: e
131 131
132 132 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
133 133 % after update 4, strip 2
134 134 changeset: 3:443431ffac4f
135 135 tag: tip
136 136 user: test
137 137 date: Thu Jan 01 00:00:00 1970 +0000
138 138 summary: e
139 139
140 140 $ teststrip 4 1
141 141 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
142 142 % before update 4, strip 1
143 143 changeset: 4:264128213d29
144 144 tag: tip
145 145 parent: 1:ef3a871183d7
146 146 user: test
147 147 date: Thu Jan 01 00:00:00 1970 +0000
148 148 summary: c
149 149
150 150 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
151 151 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
152 152 % after update 4, strip 1
153 153 changeset: 0:9ab35a2d17cb
154 154 tag: tip
155 155 user: test
156 156 date: Thu Jan 01 00:00:00 1970 +0000
157 157 summary: a
158 158
159 159 $ teststrip null 4
160 160 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
161 161 % before update null, strip 4
162 162 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
163 163 % after update null, strip 4
164 164
165 165 $ hg log
166 166 changeset: 4:264128213d29
167 167 tag: tip
168 168 parent: 1:ef3a871183d7
169 169 user: test
170 170 date: Thu Jan 01 00:00:00 1970 +0000
171 171 summary: c
172 172
173 173 changeset: 3:443431ffac4f
174 174 user: test
175 175 date: Thu Jan 01 00:00:00 1970 +0000
176 176 summary: e
177 177
178 178 changeset: 2:65bd5f99a4a3
179 179 user: test
180 180 date: Thu Jan 01 00:00:00 1970 +0000
181 181 summary: d
182 182
183 183 changeset: 1:ef3a871183d7
184 184 user: test
185 185 date: Thu Jan 01 00:00:00 1970 +0000
186 186 summary: b
187 187
188 188 changeset: 0:9ab35a2d17cb
189 189 user: test
190 190 date: Thu Jan 01 00:00:00 1970 +0000
191 191 summary: a
192 192
193 193 $ hg up -C 4
194 194 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
195 195 $ hg parents
196 196 changeset: 4:264128213d29
197 197 tag: tip
198 198 parent: 1:ef3a871183d7
199 199 user: test
200 200 date: Thu Jan 01 00:00:00 1970 +0000
201 201 summary: c
202 202
203 203
204 204 $ hg --traceback strip 4
205 205 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
206 206 saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg (glob)
207 207 $ hg parents
208 208 changeset: 1:ef3a871183d7
209 209 user: test
210 210 date: Thu Jan 01 00:00:00 1970 +0000
211 211 summary: b
212 212
213 213 $ hg debugbundle .hg/strip-backup/*
214 214 Stream params: sortdict([('Compression', 'BZ')])
215 215 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])"
216 216 264128213d290d868c54642d13aeaa3675551a78
217 217 phase-heads -- 'sortdict()'
218 218 264128213d290d868c54642d13aeaa3675551a78 draft
219 219 $ hg pull .hg/strip-backup/*
220 220 pulling from .hg/strip-backup/264128213d29-0b39d6bf-backup.hg
221 221 searching for changes
222 222 adding changesets
223 223 adding manifests
224 224 adding file changes
225 225 added 1 changesets with 0 changes to 0 files (+1 heads)
226 226 (run 'hg heads' to see heads, 'hg merge' to merge)
227 227 $ rm .hg/strip-backup/*
228 228 $ hg log --graph
229 229 o changeset: 4:264128213d29
230 230 | tag: tip
231 231 | parent: 1:ef3a871183d7
232 232 | user: test
233 233 | date: Thu Jan 01 00:00:00 1970 +0000
234 234 | summary: c
235 235 |
236 236 | o changeset: 3:443431ffac4f
237 237 | | user: test
238 238 | | date: Thu Jan 01 00:00:00 1970 +0000
239 239 | | summary: e
240 240 | |
241 241 | o changeset: 2:65bd5f99a4a3
242 242 |/ user: test
243 243 | date: Thu Jan 01 00:00:00 1970 +0000
244 244 | summary: d
245 245 |
246 246 @ changeset: 1:ef3a871183d7
247 247 | user: test
248 248 | date: Thu Jan 01 00:00:00 1970 +0000
249 249 | summary: b
250 250 |
251 251 o changeset: 0:9ab35a2d17cb
252 252 user: test
253 253 date: Thu Jan 01 00:00:00 1970 +0000
254 254 summary: a
255 255
256 256 $ hg up -C 2
257 257 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
258 258 $ hg merge 4
259 259 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
260 260 (branch merge, don't forget to commit)
261 261
262 262 before strip of merge parent
263 263
264 264 $ hg parents
265 265 changeset: 2:65bd5f99a4a3
266 266 user: test
267 267 date: Thu Jan 01 00:00:00 1970 +0000
268 268 summary: d
269 269
270 270 changeset: 4:264128213d29
271 271 tag: tip
272 272 parent: 1:ef3a871183d7
273 273 user: test
274 274 date: Thu Jan 01 00:00:00 1970 +0000
275 275 summary: c
276 276
277 277 $ hg strip 4
278 278 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
279 279 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
280 280
281 281 after strip of merge parent
282 282
283 283 $ hg parents
284 284 changeset: 1:ef3a871183d7
285 285 user: test
286 286 date: Thu Jan 01 00:00:00 1970 +0000
287 287 summary: b
288 288
289 289 $ restore
290 290
291 291 $ hg up
292 292 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
293 293 updated to "264128213d29: c"
294 294 1 other heads for branch "default"
295 295 $ hg log -G
296 296 @ changeset: 4:264128213d29
297 297 | tag: tip
298 298 | parent: 1:ef3a871183d7
299 299 | user: test
300 300 | date: Thu Jan 01 00:00:00 1970 +0000
301 301 | summary: c
302 302 |
303 303 | o changeset: 3:443431ffac4f
304 304 | | user: test
305 305 | | date: Thu Jan 01 00:00:00 1970 +0000
306 306 | | summary: e
307 307 | |
308 308 | o changeset: 2:65bd5f99a4a3
309 309 |/ user: test
310 310 | date: Thu Jan 01 00:00:00 1970 +0000
311 311 | summary: d
312 312 |
313 313 o changeset: 1:ef3a871183d7
314 314 | user: test
315 315 | date: Thu Jan 01 00:00:00 1970 +0000
316 316 | summary: b
317 317 |
318 318 o changeset: 0:9ab35a2d17cb
319 319 user: test
320 320 date: Thu Jan 01 00:00:00 1970 +0000
321 321 summary: a
322 322
323 323
324 324 2 is parent of 3, only one strip should happen
325 325
326 326 $ hg strip "roots(2)" 3
327 327 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
328 328 $ hg log -G
329 329 @ changeset: 2:264128213d29
330 330 | tag: tip
331 331 | user: test
332 332 | date: Thu Jan 01 00:00:00 1970 +0000
333 333 | summary: c
334 334 |
335 335 o changeset: 1:ef3a871183d7
336 336 | user: test
337 337 | date: Thu Jan 01 00:00:00 1970 +0000
338 338 | summary: b
339 339 |
340 340 o changeset: 0:9ab35a2d17cb
341 341 user: test
342 342 date: Thu Jan 01 00:00:00 1970 +0000
343 343 summary: a
344 344
345 345 $ restore
346 346 $ hg log -G
347 347 o changeset: 4:443431ffac4f
348 348 | tag: tip
349 349 | user: test
350 350 | date: Thu Jan 01 00:00:00 1970 +0000
351 351 | summary: e
352 352 |
353 353 o changeset: 3:65bd5f99a4a3
354 354 | parent: 1:ef3a871183d7
355 355 | user: test
356 356 | date: Thu Jan 01 00:00:00 1970 +0000
357 357 | summary: d
358 358 |
359 359 | @ changeset: 2:264128213d29
360 360 |/ user: test
361 361 | date: Thu Jan 01 00:00:00 1970 +0000
362 362 | summary: c
363 363 |
364 364 o changeset: 1:ef3a871183d7
365 365 | user: test
366 366 | date: Thu Jan 01 00:00:00 1970 +0000
367 367 | summary: b
368 368 |
369 369 o changeset: 0:9ab35a2d17cb
370 370 user: test
371 371 date: Thu Jan 01 00:00:00 1970 +0000
372 372 summary: a
373 373
374 374 Failed hook while applying "saveheads" bundle.
375 375
376 376 $ hg strip 2 --config hooks.pretxnchangegroup.bad=false
377 377 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
378 378 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
379 379 transaction abort!
380 380 rollback completed
381 381 strip failed, backup bundle stored in '$TESTTMP/test/.hg/strip-backup/*-backup.hg' (glob)
382 382 strip failed, unrecovered changes stored in '$TESTTMP/test/.hg/strip-backup/*-temp.hg' (glob)
383 383 (fix the problem, then recover the changesets with "hg unbundle '$TESTTMP/test/.hg/strip-backup/*-temp.hg'") (glob)
384 384 abort: pretxnchangegroup.bad hook exited with status 1
385 385 [255]
386 386 $ restore
387 387 $ hg log -G
388 388 o changeset: 4:443431ffac4f
389 389 | tag: tip
390 390 | user: test
391 391 | date: Thu Jan 01 00:00:00 1970 +0000
392 392 | summary: e
393 393 |
394 394 o changeset: 3:65bd5f99a4a3
395 395 | parent: 1:ef3a871183d7
396 396 | user: test
397 397 | date: Thu Jan 01 00:00:00 1970 +0000
398 398 | summary: d
399 399 |
400 400 | o changeset: 2:264128213d29
401 401 |/ user: test
402 402 | date: Thu Jan 01 00:00:00 1970 +0000
403 403 | summary: c
404 404 |
405 405 @ changeset: 1:ef3a871183d7
406 406 | user: test
407 407 | date: Thu Jan 01 00:00:00 1970 +0000
408 408 | summary: b
409 409 |
410 410 o changeset: 0:9ab35a2d17cb
411 411 user: test
412 412 date: Thu Jan 01 00:00:00 1970 +0000
413 413 summary: a
414 414
415 415
416 416 2 different branches: 2 strips
417 417
418 418 $ hg strip 2 4
419 419 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
420 420 $ hg log -G
421 421 o changeset: 2:65bd5f99a4a3
422 422 | tag: tip
423 423 | user: test
424 424 | date: Thu Jan 01 00:00:00 1970 +0000
425 425 | summary: d
426 426 |
427 427 @ changeset: 1:ef3a871183d7
428 428 | user: test
429 429 | date: Thu Jan 01 00:00:00 1970 +0000
430 430 | summary: b
431 431 |
432 432 o changeset: 0:9ab35a2d17cb
433 433 user: test
434 434 date: Thu Jan 01 00:00:00 1970 +0000
435 435 summary: a
436 436
437 437 $ restore
438 438
439 439 2 different branches and a common ancestor: 1 strip
440 440
441 441 $ hg strip 1 "2|4"
442 442 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
443 443 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
444 444 $ restore
445 445
446 446 verify fncache is kept up-to-date
447 447
448 448 $ touch a
449 449 $ hg ci -qAm a
450 450 $ cat .hg/store/fncache | sort
451 451 data/a.i
452 452 data/bar.i
453 453 $ hg strip tip
454 454 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
455 455 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
456 456 $ cat .hg/store/fncache
457 457 data/bar.i
458 458
459 459 stripping an empty revset
460 460
461 461 $ hg strip "1 and not 1"
462 462 abort: empty revision set
463 463 [255]
464 464
465 465 remove branchy history for qimport tests
466 466
467 467 $ hg strip 3
468 468 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
469 469
470 470
471 471 strip of applied mq should cleanup status file
472 472
473 473 $ echo "mq=" >> $HGRCPATH
474 474 $ hg up -C 3
475 475 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
476 476 $ echo fooagain >> bar
477 477 $ hg ci -mf
478 478 $ hg qimport -r tip:2
479 479
480 480 applied patches before strip
481 481
482 482 $ hg qapplied
483 483 d
484 484 e
485 485 f
486 486
487 487 stripping revision in queue
488 488
489 489 $ hg strip 3
490 490 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
491 491 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
492 492
493 493 applied patches after stripping rev in queue
494 494
495 495 $ hg qapplied
496 496 d
497 497
498 498 stripping ancestor of queue
499 499
500 500 $ hg strip 1
501 501 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
502 502 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
503 503
504 504 applied patches after stripping ancestor of queue
505 505
506 506 $ hg qapplied
507 507
508 508 Verify strip protects against stripping wc parent when there are uncommitted mods
509 509
510 510 $ echo b > b
511 511 $ echo bb > bar
512 512 $ hg add b
513 513 $ hg ci -m 'b'
514 514 $ hg log --graph
515 515 @ changeset: 1:76dcf9fab855
516 516 | tag: tip
517 517 | user: test
518 518 | date: Thu Jan 01 00:00:00 1970 +0000
519 519 | summary: b
520 520 |
521 521 o changeset: 0:9ab35a2d17cb
522 522 user: test
523 523 date: Thu Jan 01 00:00:00 1970 +0000
524 524 summary: a
525 525
526 526 $ hg up 0
527 527 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
528 528 $ echo c > bar
529 529 $ hg up -t false
530 530 merging bar
531 531 merging bar failed!
532 532 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
533 533 use 'hg resolve' to retry unresolved file merges
534 534 [1]
535 535 $ hg sum
536 536 parent: 1:76dcf9fab855 tip
537 537 b
538 538 branch: default
539 539 commit: 1 modified, 1 unknown, 1 unresolved
540 540 update: (current)
541 541 phases: 2 draft
542 542 mq: 3 unapplied
543 543
544 544 $ echo c > b
545 545 $ hg strip tip
546 546 abort: local changes found
547 547 [255]
548 548 $ hg strip tip --keep
549 549 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
550 550 $ hg log --graph
551 551 @ changeset: 0:9ab35a2d17cb
552 552 tag: tip
553 553 user: test
554 554 date: Thu Jan 01 00:00:00 1970 +0000
555 555 summary: a
556 556
557 557 $ hg status
558 558 M bar
559 559 ? b
560 560 ? bar.orig
561 561
562 562 $ rm bar.orig
563 563 $ hg sum
564 564 parent: 0:9ab35a2d17cb tip
565 565 a
566 566 branch: default
567 567 commit: 1 modified, 1 unknown
568 568 update: (current)
569 569 phases: 1 draft
570 570 mq: 3 unapplied
571 571
572 572 Strip adds, removes, modifies with --keep
573 573
574 574 $ touch b
575 575 $ hg add b
576 576 $ hg commit -mb
577 577 $ touch c
578 578
579 579 ... with a clean working dir
580 580
581 581 $ hg add c
582 582 $ hg rm bar
583 583 $ hg commit -mc
584 584 $ hg status
585 585 $ hg strip --keep tip
586 586 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
587 587 $ hg status
588 588 ! bar
589 589 ? c
590 590
591 591 ... with a dirty working dir
592 592
593 593 $ hg add c
594 594 $ hg rm bar
595 595 $ hg commit -mc
596 596 $ hg status
597 597 $ echo b > b
598 598 $ echo d > d
599 599 $ hg strip --keep tip
600 600 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
601 601 $ hg status
602 602 M b
603 603 ! bar
604 604 ? c
605 605 ? d
606 606
607 607 ... after updating the dirstate
608 608 $ hg add c
609 609 $ hg commit -mc
610 610 $ hg rm c
611 611 $ hg commit -mc
612 612 $ hg strip --keep '.^' -q
613 613 $ cd ..
614 614
615 615 stripping many nodes on a complex graph (issue3299)
616 616
617 617 $ hg init issue3299
618 618 $ cd issue3299
619 619 $ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
620 620 $ hg strip 'not ancestors(x)'
621 621 saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
622 622
623 623 test hg strip -B bookmark
624 624
625 625 $ cd ..
626 626 $ hg init bookmarks
627 627 $ cd bookmarks
628 628 $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b<m+2:d<2.:e<m+1:f'
629 629 $ hg bookmark -r 'a' 'todelete'
630 630 $ hg bookmark -r 'b' 'B'
631 631 $ hg bookmark -r 'b' 'nostrip'
632 632 $ hg bookmark -r 'c' 'delete'
633 633 $ hg bookmark -r 'd' 'multipledelete1'
634 634 $ hg bookmark -r 'e' 'multipledelete2'
635 635 $ hg bookmark -r 'f' 'singlenode1'
636 636 $ hg bookmark -r 'f' 'singlenode2'
637 637 $ hg up -C todelete
638 638 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
639 639 (activating bookmark todelete)
640 640 $ hg strip -B nostrip
641 641 bookmark 'nostrip' deleted
642 642 abort: empty revision set
643 643 [255]
644 644 $ hg strip -B todelete
645 645 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
646 646 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
647 647 bookmark 'todelete' deleted
648 648 $ hg id -ir dcbb326fdec2
649 649 abort: unknown revision 'dcbb326fdec2'!
650 650 [255]
651 651 $ hg id -ir d62d843c9a01
652 652 d62d843c9a01
653 653 $ hg bookmarks
654 654 B 9:ff43616e5d0f
655 655 delete 6:2702dd0c91e7
656 656 multipledelete1 11:e46a4836065c
657 657 multipledelete2 12:b4594d867745
658 658 singlenode1 13:43227190fef8
659 659 singlenode2 13:43227190fef8
660 660 $ hg strip -B multipledelete1 -B multipledelete2
661 661 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/e46a4836065c-89ec65c2-backup.hg (glob)
662 662 bookmark 'multipledelete1' deleted
663 663 bookmark 'multipledelete2' deleted
664 664 $ hg id -ir e46a4836065c
665 665 abort: unknown revision 'e46a4836065c'!
666 666 [255]
667 667 $ hg id -ir b4594d867745
668 668 abort: unknown revision 'b4594d867745'!
669 669 [255]
670 670 $ hg strip -B singlenode1 -B singlenode2
671 671 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/43227190fef8-8da858f2-backup.hg (glob)
672 672 bookmark 'singlenode1' deleted
673 673 bookmark 'singlenode2' deleted
674 674 $ hg id -ir 43227190fef8
675 675 abort: unknown revision '43227190fef8'!
676 676 [255]
677 677 $ hg strip -B unknownbookmark
678 678 abort: bookmark 'unknownbookmark' not found
679 679 [255]
680 680 $ hg strip -B unknownbookmark1 -B unknownbookmark2
681 681 abort: bookmark 'unknownbookmark1,unknownbookmark2' not found
682 682 [255]
683 683 $ hg strip -B delete -B unknownbookmark
684 684 abort: bookmark 'unknownbookmark' not found
685 685 [255]
686 686 $ hg strip -B delete
687 687 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
688 688 bookmark 'delete' deleted
689 689 $ hg id -ir 6:2702dd0c91e7
690 690 abort: unknown revision '2702dd0c91e7'!
691 691 [255]
692 692 $ hg update B
693 693 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
694 694 (activating bookmark B)
695 695 $ echo a > a
696 696 $ hg add a
697 697 $ hg strip -B B
698 698 abort: local changes found
699 699 [255]
700 700 $ hg bookmarks
701 701 * B 6:ff43616e5d0f
702 702
703 703 Make sure no one adds back a -b option:
704 704
705 705 $ hg strip -b tip
706 706 hg strip: option -b not recognized
707 707 hg strip [-k] [-f] [-B bookmark] [-r] REV...
708 708
709 709 strip changesets and all their descendants from the repository
710 710
711 711 (use 'hg help -e strip' to show help for the strip extension)
712 712
713 713 options ([+] can be repeated):
714 714
715 715 -r --rev REV [+] strip specified revision (optional, can specify
716 716 revisions without this option)
717 717 -f --force force removal of changesets, discard uncommitted
718 718 changes (no backup)
719 719 --no-backup no backups
720 720 -k --keep do not modify working directory during strip
721 721 -B --bookmark VALUE [+] remove revs only reachable from given bookmark
722 722 --mq operate on patch repository
723 723
724 724 (use 'hg strip -h' to show more help)
725 725 [255]
726 726
727 727 $ cd ..
728 728
729 729 Verify bundles don't get overwritten:
730 730
731 731 $ hg init doublebundle
732 732 $ cd doublebundle
733 733 $ touch a
734 734 $ hg commit -Aqm a
735 735 $ touch b
736 736 $ hg commit -Aqm b
737 737 $ hg strip -r 0
738 738 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
739 739 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg (glob)
740 740 $ ls .hg/strip-backup
741 741 3903775176ed-e68910bd-backup.hg
742 742 $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg
743 743 $ hg strip -r 0
744 744 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg (glob)
745 745 $ ls .hg/strip-backup
746 746 3903775176ed-54390173-backup.hg
747 747 3903775176ed-e68910bd-backup.hg
748 748 $ cd ..
749 749
750 750 Test that we only bundle the stripped changesets (issue4736)
751 751 ------------------------------------------------------------
752 752
753 753 initialization (previous repo is empty anyway)
754 754
755 755 $ hg init issue4736
756 756 $ cd issue4736
757 757 $ echo a > a
758 758 $ hg add a
759 759 $ hg commit -m commitA
760 760 $ echo b > b
761 761 $ hg add b
762 762 $ hg commit -m commitB
763 763 $ echo c > c
764 764 $ hg add c
765 765 $ hg commit -m commitC
766 766 $ hg up 'desc(commitB)'
767 767 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
768 768 $ echo d > d
769 769 $ hg add d
770 770 $ hg commit -m commitD
771 771 created new head
772 772 $ hg up 'desc(commitC)'
773 773 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
774 774 $ hg merge 'desc(commitD)'
775 775 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
776 776 (branch merge, don't forget to commit)
777 777 $ hg ci -m 'mergeCD'
778 778 $ hg log -G
779 779 @ changeset: 4:d8db9d137221
780 780 |\ tag: tip
781 781 | | parent: 2:5c51d8d6557d
782 782 | | parent: 3:6625a5168474
783 783 | | user: test
784 784 | | date: Thu Jan 01 00:00:00 1970 +0000
785 785 | | summary: mergeCD
786 786 | |
787 787 | o changeset: 3:6625a5168474
788 788 | | parent: 1:eca11cf91c71
789 789 | | user: test
790 790 | | date: Thu Jan 01 00:00:00 1970 +0000
791 791 | | summary: commitD
792 792 | |
793 793 o | changeset: 2:5c51d8d6557d
794 794 |/ user: test
795 795 | date: Thu Jan 01 00:00:00 1970 +0000
796 796 | summary: commitC
797 797 |
798 798 o changeset: 1:eca11cf91c71
799 799 | user: test
800 800 | date: Thu Jan 01 00:00:00 1970 +0000
801 801 | summary: commitB
802 802 |
803 803 o changeset: 0:105141ef12d0
804 804 user: test
805 805 date: Thu Jan 01 00:00:00 1970 +0000
806 806 summary: commitA
807 807
808 808
809 809 Check bundle behavior:
810 810
811 811 $ hg bundle -r 'desc(mergeCD)' --base 'desc(commitC)' ../issue4736.hg
812 812 2 changesets found
813 813 $ hg log -r 'bundle()' -R ../issue4736.hg
814 814 changeset: 3:6625a5168474
815 815 parent: 1:eca11cf91c71
816 816 user: test
817 817 date: Thu Jan 01 00:00:00 1970 +0000
818 818 summary: commitD
819 819
820 820 changeset: 4:d8db9d137221
821 821 tag: tip
822 822 parent: 2:5c51d8d6557d
823 823 parent: 3:6625a5168474
824 824 user: test
825 825 date: Thu Jan 01 00:00:00 1970 +0000
826 826 summary: mergeCD
827 827
828 828
829 829 check strip behavior
830 830
831 831 $ hg --config extensions.strip= strip 'desc(commitD)' --debug
832 832 resolving manifests
833 833 branchmerge: False, force: True, partial: False
834 834 ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71
835 835 c: other deleted -> r
836 836 removing c
837 837 d: other deleted -> r
838 838 removing d
839 839 starting 4 threads for background file closing (?)
840 840 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
841 841 2 changesets found
842 842 list of changesets:
843 843 6625a516847449b6f0fa3737b9ba56e9f0f3032c
844 844 d8db9d1372214336d2b5570f20ee468d2c72fa8b
845 845 bundle2-output-bundle: "HG20", (1 params) 2 parts total
846 846 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
847 847 bundle2-output-part: "phase-heads" 24 bytes payload
848 848 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg (glob)
849 849 updating the branch cache
850 850 invalid branchheads cache (served): tip differs
851 851 truncating cache/rbc-revs-v1 to 24
852 852 $ hg log -G
853 853 o changeset: 2:5c51d8d6557d
854 854 | tag: tip
855 855 | user: test
856 856 | date: Thu Jan 01 00:00:00 1970 +0000
857 857 | summary: commitC
858 858 |
859 859 @ changeset: 1:eca11cf91c71
860 860 | user: test
861 861 | date: Thu Jan 01 00:00:00 1970 +0000
862 862 | summary: commitB
863 863 |
864 864 o changeset: 0:105141ef12d0
865 865 user: test
866 866 date: Thu Jan 01 00:00:00 1970 +0000
867 867 summary: commitA
868 868
869 869
870 870 strip backup content
871 871
872 872 $ hg log -r 'bundle()' -R .hg/strip-backup/6625a5168474-*-backup.hg
873 873 changeset: 3:6625a5168474
874 874 parent: 1:eca11cf91c71
875 875 user: test
876 876 date: Thu Jan 01 00:00:00 1970 +0000
877 877 summary: commitD
878 878
879 879 changeset: 4:d8db9d137221
880 880 tag: tip
881 881 parent: 2:5c51d8d6557d
882 882 parent: 3:6625a5168474
883 883 user: test
884 884 date: Thu Jan 01 00:00:00 1970 +0000
885 885 summary: mergeCD
886 886
887 887 Check that the phase cache is properly invalidated after a strip with bookmark.
888 888
889 889 $ cat > ../stripstalephasecache.py << EOF
890 890 > from mercurial import extensions, localrepo
891 891 > def transactioncallback(orig, repo, desc, *args, **kwargs):
892 892 > def test(transaction):
893 893 > # observe cache inconsistency
894 894 > try:
895 895 > [repo.changelog.node(r) for r in repo.revs("not public()")]
896 896 > except IndexError:
897 897 > repo.ui.status("Index error!\n")
898 898 > transaction = orig(repo, desc, *args, **kwargs)
899 899 > # warm up the phase cache
900 900 > list(repo.revs("not public()"))
901 901 > if desc != 'strip':
902 902 > transaction.addpostclose("phase invalidation test", test)
903 903 > return transaction
904 904 > def extsetup(ui):
905 905 > extensions.wrapfunction(localrepo.localrepository, "transaction",
906 906 > transactioncallback)
907 907 > EOF
908 908 $ hg up -C 2
909 909 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
910 910 $ echo k > k
911 911 $ hg add k
912 912 $ hg commit -m commitK
913 913 $ echo l > l
914 914 $ hg add l
915 915 $ hg commit -m commitL
916 916 $ hg book -r tip blah
917 917 $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py
918 918 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
919 919 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg (glob)
920 920 $ hg up -C 1
921 921 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
922 922
923 923 Error during post-close callback of the strip transaction
924 924 (They should be gracefully handled and reported)
925 925
926 926 $ cat > ../crashstrip.py << EOF
927 927 > from mercurial import error
928 928 > def reposetup(ui, repo):
929 929 > class crashstriprepo(repo.__class__):
930 930 > def transaction(self, desc, *args, **kwargs):
931 931 > tr = super(crashstriprepo, self).transaction(desc, *args, **kwargs)
932 932 > if desc == 'strip':
933 933 > def crash(tra): raise error.Abort('boom')
934 934 > tr.addpostclose('crash', crash)
935 935 > return tr
936 936 > repo.__class__ = crashstriprepo
937 937 > EOF
938 938 $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py
939 939 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg (glob)
940 940 strip failed, backup bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg' (glob)
941 941 abort: boom
942 942 [255]
943 943
944 944 Use delayedstrip to strip inside a transaction
945 945
946 946 $ cd $TESTTMP
947 947 $ hg init delayedstrip
948 948 $ cd delayedstrip
949 949 $ hg debugdrawdag <<'EOS'
950 950 > D
951 951 > |
952 952 > C F H # Commit on top of "I",
953 953 > | |/| # Strip B+D+I+E+G+H+Z
954 954 > I B E G
955 955 > \|/
956 956 > A Z
957 957 > EOS
958 958 $ cp -R . ../scmutilcleanup
959 959
960 960 $ hg up -C I
961 961 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
962 962 $ echo 3 >> I
963 963 $ cat > $TESTTMP/delayedstrip.py <<EOF
964 > from mercurial import repair, commands
964 > from __future__ import absolute_import
965 > from mercurial import commands, repair
965 966 > def reposetup(ui, repo):
966 967 > def getnodes(expr):
967 968 > return [repo.changelog.node(r) for r in repo.revs(expr)]
968 969 > with repo.wlock():
969 970 > with repo.lock():
970 971 > with repo.transaction('delayedstrip'):
971 972 > repair.delayedstrip(ui, repo, getnodes('B+I+Z+D+E'), 'J')
972 973 > repair.delayedstrip(ui, repo, getnodes('G+H+Z'), 'I')
973 974 > commands.commit(ui, repo, message='J', date='0 0')
974 975 > EOF
975 976 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/delayedstrip.py
976 977 warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22
977 978 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg (glob)
978 979
979 980 $ hg log -G -T '{rev}:{node|short} {desc}' -r 'sort(all(), topo)'
980 981 @ 6:2f2d51af6205 J
981 982 |
982 983 o 3:08ebfeb61bac I
983 984 |
984 985 | o 5:64a8289d2492 F
985 986 | |
986 987 | o 2:7fb047a69f22 E
987 988 |/
988 989 | o 4:26805aba1e60 C
989 990 | |
990 991 | o 1:112478962961 B
991 992 |/
992 993 o 0:426bada5c675 A
993 994
994 995 Test high-level scmutil.cleanupnodes API
995 996
996 997 $ cd $TESTTMP/scmutilcleanup
997 998 $ hg debugdrawdag <<'EOS'
998 999 > D2 F2 G2 # D2, F2, G2 are replacements for D, F, G
999 1000 > | | |
1000 1001 > C H G
1001 1002 > EOS
1002 1003 $ for i in B C D F G I Z; do
1003 1004 > hg bookmark -i -r $i b-$i
1004 1005 > done
1005 1006 $ hg bookmark -i -r E 'b-F@divergent1'
1006 1007 $ hg bookmark -i -r H 'b-F@divergent2'
1007 1008 $ hg bookmark -i -r G 'b-F@divergent3'
1008 1009 $ cp -R . ../scmutilcleanup.obsstore
1009 1010
1010 1011 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
1011 1012 > from mercurial import scmutil
1012 1013 > def reposetup(ui, repo):
1013 1014 > def nodes(expr):
1014 1015 > return [repo.changelog.node(r) for r in repo.revs(expr)]
1015 1016 > def node(expr):
1016 1017 > return nodes(expr)[0]
1017 1018 > with repo.wlock():
1018 1019 > with repo.lock():
1019 1020 > with repo.transaction('delayedstrip'):
1020 1021 > mapping = {node('F'): [node('F2')],
1021 1022 > node('D'): [node('D2')],
1022 1023 > node('G'): [node('G2')]}
1023 1024 > scmutil.cleanupnodes(repo, mapping, 'replace')
1024 1025 > scmutil.cleanupnodes(repo, nodes('((B::)+I+Z)-D2'), 'replace')
1025 1026 > EOF
1026 1027 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/scmutilcleanup.py
1027 1028 warning: orphaned descendants detected, not stripping 112478962961, 1fc8102cda62, 26805aba1e60
1028 1029 saved backup bundle to $TESTTMP/scmutilcleanup/.hg/strip-backup/f585351a92f8-73fb7c03-replace.hg (glob)
1029 1030
1030 1031 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1031 1032 o 8:1473d4b996d1 G2 b-F@divergent3 b-G
1032 1033 |
1033 1034 | o 7:d11b3456a873 F2 b-F
1034 1035 | |
1035 1036 | o 5:5cb05ba470a7 H
1036 1037 |/|
1037 1038 | o 3:7fb047a69f22 E b-F@divergent1
1038 1039 | |
1039 1040 | | o 6:7c78f703e465 D2 b-D
1040 1041 | | |
1041 1042 | | o 4:26805aba1e60 C
1042 1043 | | |
1043 1044 | | o 2:112478962961 B
1044 1045 | |/
1045 1046 o | 1:1fc8102cda62 G
1046 1047 /
1047 1048 o 0:426bada5c675 A b-B b-C b-I
1048 1049
1049 1050 $ hg bookmark
1050 1051 b-B 0:426bada5c675
1051 1052 b-C 0:426bada5c675
1052 1053 b-D 6:7c78f703e465
1053 1054 b-F 7:d11b3456a873
1054 1055 b-F@divergent1 3:7fb047a69f22
1055 1056 b-F@divergent3 8:1473d4b996d1
1056 1057 b-G 8:1473d4b996d1
1057 1058 b-I 0:426bada5c675
1058 1059 b-Z -1:000000000000
1059 1060
1060 1061 Test the above using obsstore "by the way". Not directly related to strip, but
1061 1062 we have reusable code here
1062 1063
1063 1064 $ cd $TESTTMP/scmutilcleanup.obsstore
1064 1065 $ cat >> .hg/hgrc <<EOF
1065 1066 > [experimental]
1066 1067 > stabilization=all
1067 1068 > stabilization.track-operation=1
1068 1069 > EOF
1069 1070
1070 1071 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/scmutilcleanup.py
1071 1072
1072 1073 $ rm .hg/localtags
1073 1074 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1074 1075 o 12:1473d4b996d1 G2 b-F@divergent3 b-G
1075 1076 |
1076 1077 | o 11:d11b3456a873 F2 b-F
1077 1078 | |
1078 1079 | o 8:5cb05ba470a7 H
1079 1080 |/|
1080 1081 | o 4:7fb047a69f22 E b-F@divergent1
1081 1082 | |
1082 1083 | | o 10:7c78f703e465 D2 b-D
1083 1084 | | |
1084 1085 | | x 6:26805aba1e60 C
1085 1086 | | |
1086 1087 | | x 3:112478962961 B
1087 1088 | |/
1088 1089 x | 1:1fc8102cda62 G
1089 1090 /
1090 1091 o 0:426bada5c675 A b-B b-C b-I
1091 1092
1092 1093 $ hg debugobsolete
1093 1094 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1094 1095 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1095 1096 f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1096 1097 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1097 1098 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1098 1099 08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1099 1100 26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
General Comments 0
You need to be logged in to leave comments. Login now