##// END OF EJS Templates
test: use generaldelta in 'test-strip.t'...
Pierre-Yves David -
r26929:e8e78a3d default
parent child Browse files
Show More
@@ -1,814 +1,820 b''
1 $ echo "[format]" >> $HGRCPATH
2 $ echo "usegeneraldelta=yes" >> $HGRCPATH
1 3 $ echo "[extensions]" >> $HGRCPATH
2 4 $ echo "strip=" >> $HGRCPATH
3 5
4 6 $ restore() {
5 7 > hg unbundle -q .hg/strip-backup/*
6 8 > rm .hg/strip-backup/*
7 9 > }
8 10 $ teststrip() {
9 11 > hg up -C $1
10 12 > echo % before update $1, strip $2
11 13 > hg parents
12 14 > hg --traceback strip $2
13 15 > echo % after update $1, strip $2
14 16 > hg parents
15 17 > restore
16 18 > }
17 19
18 20 $ hg init test
19 21 $ cd test
20 22
21 23 $ echo foo > bar
22 24 $ hg ci -Ama
23 25 adding bar
24 26
25 27 $ echo more >> bar
26 28 $ hg ci -Amb
27 29
28 30 $ echo blah >> bar
29 31 $ hg ci -Amc
30 32
31 33 $ hg up 1
32 34 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
33 35 $ echo blah >> bar
34 36 $ hg ci -Amd
35 37 created new head
36 38
37 39 $ echo final >> bar
38 40 $ hg ci -Ame
39 41
40 42 $ hg log
41 43 changeset: 4:443431ffac4f
42 44 tag: tip
43 45 user: test
44 46 date: Thu Jan 01 00:00:00 1970 +0000
45 47 summary: e
46 48
47 49 changeset: 3:65bd5f99a4a3
48 50 parent: 1:ef3a871183d7
49 51 user: test
50 52 date: Thu Jan 01 00:00:00 1970 +0000
51 53 summary: d
52 54
53 55 changeset: 2:264128213d29
54 56 user: test
55 57 date: Thu Jan 01 00:00:00 1970 +0000
56 58 summary: c
57 59
58 60 changeset: 1:ef3a871183d7
59 61 user: test
60 62 date: Thu Jan 01 00:00:00 1970 +0000
61 63 summary: b
62 64
63 65 changeset: 0:9ab35a2d17cb
64 66 user: test
65 67 date: Thu Jan 01 00:00:00 1970 +0000
66 68 summary: a
67 69
68 70
69 71 $ teststrip 4 4
70 72 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
71 73 % before update 4, strip 4
72 74 changeset: 4:443431ffac4f
73 75 tag: tip
74 76 user: test
75 77 date: Thu Jan 01 00:00:00 1970 +0000
76 78 summary: e
77 79
78 80 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
79 81 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
80 82 % after update 4, strip 4
81 83 changeset: 3:65bd5f99a4a3
82 84 tag: tip
83 85 parent: 1:ef3a871183d7
84 86 user: test
85 87 date: Thu Jan 01 00:00:00 1970 +0000
86 88 summary: d
87 89
88 90 $ teststrip 4 3
89 91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
90 92 % before update 4, strip 3
91 93 changeset: 4:443431ffac4f
92 94 tag: tip
93 95 user: test
94 96 date: Thu Jan 01 00:00:00 1970 +0000
95 97 summary: e
96 98
97 99 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
98 100 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
99 101 % after update 4, strip 3
100 102 changeset: 1:ef3a871183d7
101 103 user: test
102 104 date: Thu Jan 01 00:00:00 1970 +0000
103 105 summary: b
104 106
105 107 $ teststrip 1 4
106 108 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
107 109 % before update 1, strip 4
108 110 changeset: 1:ef3a871183d7
109 111 user: test
110 112 date: Thu Jan 01 00:00:00 1970 +0000
111 113 summary: b
112 114
113 115 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
114 116 % after update 1, strip 4
115 117 changeset: 1:ef3a871183d7
116 118 user: test
117 119 date: Thu Jan 01 00:00:00 1970 +0000
118 120 summary: b
119 121
120 122 $ teststrip 4 2
121 123 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
122 124 % before update 4, strip 2
123 125 changeset: 4:443431ffac4f
124 126 tag: tip
125 127 user: test
126 128 date: Thu Jan 01 00:00:00 1970 +0000
127 129 summary: e
128 130
129 131 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
130 132 % after update 4, strip 2
131 133 changeset: 3:443431ffac4f
132 134 tag: tip
133 135 user: test
134 136 date: Thu Jan 01 00:00:00 1970 +0000
135 137 summary: e
136 138
137 139 $ teststrip 4 1
138 140 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
139 141 % before update 4, strip 1
140 142 changeset: 4:264128213d29
141 143 tag: tip
142 144 parent: 1:ef3a871183d7
143 145 user: test
144 146 date: Thu Jan 01 00:00:00 1970 +0000
145 147 summary: c
146 148
147 149 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
148 150 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
149 151 % after update 4, strip 1
150 152 changeset: 0:9ab35a2d17cb
151 153 tag: tip
152 154 user: test
153 155 date: Thu Jan 01 00:00:00 1970 +0000
154 156 summary: a
155 157
156 158 $ teststrip null 4
157 159 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
158 160 % before update null, strip 4
159 161 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
160 162 % after update null, strip 4
161 163
162 164 $ hg log
163 165 changeset: 4:264128213d29
164 166 tag: tip
165 167 parent: 1:ef3a871183d7
166 168 user: test
167 169 date: Thu Jan 01 00:00:00 1970 +0000
168 170 summary: c
169 171
170 172 changeset: 3:443431ffac4f
171 173 user: test
172 174 date: Thu Jan 01 00:00:00 1970 +0000
173 175 summary: e
174 176
175 177 changeset: 2:65bd5f99a4a3
176 178 user: test
177 179 date: Thu Jan 01 00:00:00 1970 +0000
178 180 summary: d
179 181
180 182 changeset: 1:ef3a871183d7
181 183 user: test
182 184 date: Thu Jan 01 00:00:00 1970 +0000
183 185 summary: b
184 186
185 187 changeset: 0:9ab35a2d17cb
186 188 user: test
187 189 date: Thu Jan 01 00:00:00 1970 +0000
188 190 summary: a
189 191
190 192 $ hg up -C 4
191 193 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
192 194 $ hg parents
193 195 changeset: 4:264128213d29
194 196 tag: tip
195 197 parent: 1:ef3a871183d7
196 198 user: test
197 199 date: Thu Jan 01 00:00:00 1970 +0000
198 200 summary: c
199 201
200 202
201 203 $ hg --traceback strip 4
202 204 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
203 205 saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg (glob)
204 206 $ hg parents
205 207 changeset: 1:ef3a871183d7
206 208 user: test
207 209 date: Thu Jan 01 00:00:00 1970 +0000
208 210 summary: b
209 211
210 212 $ hg debugbundle .hg/strip-backup/*
211 264128213d290d868c54642d13aeaa3675551a78
213 Stream params: {'Compression': 'BZ'}
214 changegroup -- "{'version': '02'}"
215 264128213d290d868c54642d13aeaa3675551a78
212 216 $ hg pull .hg/strip-backup/*
213 217 pulling from .hg/strip-backup/264128213d29-0b39d6bf-backup.hg
214 218 searching for changes
215 219 adding changesets
216 220 adding manifests
217 221 adding file changes
218 222 added 1 changesets with 0 changes to 0 files (+1 heads)
219 223 (run 'hg heads' to see heads, 'hg merge' to merge)
220 224 $ rm .hg/strip-backup/*
221 225 $ hg log --graph
222 226 o changeset: 4:264128213d29
223 227 | tag: tip
224 228 | parent: 1:ef3a871183d7
225 229 | user: test
226 230 | date: Thu Jan 01 00:00:00 1970 +0000
227 231 | summary: c
228 232 |
229 233 | o changeset: 3:443431ffac4f
230 234 | | user: test
231 235 | | date: Thu Jan 01 00:00:00 1970 +0000
232 236 | | summary: e
233 237 | |
234 238 | o changeset: 2:65bd5f99a4a3
235 239 |/ user: test
236 240 | date: Thu Jan 01 00:00:00 1970 +0000
237 241 | summary: d
238 242 |
239 243 @ changeset: 1:ef3a871183d7
240 244 | user: test
241 245 | date: Thu Jan 01 00:00:00 1970 +0000
242 246 | summary: b
243 247 |
244 248 o changeset: 0:9ab35a2d17cb
245 249 user: test
246 250 date: Thu Jan 01 00:00:00 1970 +0000
247 251 summary: a
248 252
249 253 $ hg up -C 2
250 254 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
251 255 $ hg merge 4
252 256 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
253 257 (branch merge, don't forget to commit)
254 258
255 259 before strip of merge parent
256 260
257 261 $ hg parents
258 262 changeset: 2:65bd5f99a4a3
259 263 user: test
260 264 date: Thu Jan 01 00:00:00 1970 +0000
261 265 summary: d
262 266
263 267 changeset: 4:264128213d29
264 268 tag: tip
265 269 parent: 1:ef3a871183d7
266 270 user: test
267 271 date: Thu Jan 01 00:00:00 1970 +0000
268 272 summary: c
269 273
270 274 $ hg strip 4
271 275 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
272 276 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
273 277
274 278 after strip of merge parent
275 279
276 280 $ hg parents
277 281 changeset: 1:ef3a871183d7
278 282 user: test
279 283 date: Thu Jan 01 00:00:00 1970 +0000
280 284 summary: b
281 285
282 286 $ restore
283 287
284 288 $ hg up
285 289 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
286 290 $ hg log -G
287 291 @ changeset: 4:264128213d29
288 292 | tag: tip
289 293 | parent: 1:ef3a871183d7
290 294 | user: test
291 295 | date: Thu Jan 01 00:00:00 1970 +0000
292 296 | summary: c
293 297 |
294 298 | o changeset: 3:443431ffac4f
295 299 | | user: test
296 300 | | date: Thu Jan 01 00:00:00 1970 +0000
297 301 | | summary: e
298 302 | |
299 303 | o changeset: 2:65bd5f99a4a3
300 304 |/ user: test
301 305 | date: Thu Jan 01 00:00:00 1970 +0000
302 306 | summary: d
303 307 |
304 308 o changeset: 1:ef3a871183d7
305 309 | user: test
306 310 | date: Thu Jan 01 00:00:00 1970 +0000
307 311 | summary: b
308 312 |
309 313 o changeset: 0:9ab35a2d17cb
310 314 user: test
311 315 date: Thu Jan 01 00:00:00 1970 +0000
312 316 summary: a
313 317
314 318
315 319 2 is parent of 3, only one strip should happen
316 320
317 321 $ hg strip "roots(2)" 3
318 322 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
319 323 $ hg log -G
320 324 @ changeset: 2:264128213d29
321 325 | tag: tip
322 326 | user: test
323 327 | date: Thu Jan 01 00:00:00 1970 +0000
324 328 | summary: c
325 329 |
326 330 o changeset: 1:ef3a871183d7
327 331 | user: test
328 332 | date: Thu Jan 01 00:00:00 1970 +0000
329 333 | summary: b
330 334 |
331 335 o changeset: 0:9ab35a2d17cb
332 336 user: test
333 337 date: Thu Jan 01 00:00:00 1970 +0000
334 338 summary: a
335 339
336 340 $ restore
337 341 $ hg log -G
338 342 o changeset: 4:443431ffac4f
339 343 | tag: tip
340 344 | user: test
341 345 | date: Thu Jan 01 00:00:00 1970 +0000
342 346 | summary: e
343 347 |
344 348 o changeset: 3:65bd5f99a4a3
345 349 | parent: 1:ef3a871183d7
346 350 | user: test
347 351 | date: Thu Jan 01 00:00:00 1970 +0000
348 352 | summary: d
349 353 |
350 354 | @ changeset: 2:264128213d29
351 355 |/ user: test
352 356 | date: Thu Jan 01 00:00:00 1970 +0000
353 357 | summary: c
354 358 |
355 359 o changeset: 1:ef3a871183d7
356 360 | user: test
357 361 | date: Thu Jan 01 00:00:00 1970 +0000
358 362 | summary: b
359 363 |
360 364 o changeset: 0:9ab35a2d17cb
361 365 user: test
362 366 date: Thu Jan 01 00:00:00 1970 +0000
363 367 summary: a
364 368
365 369
366 370 2 different branches: 2 strips
367 371
368 372 $ hg strip 2 4
369 373 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
370 374 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
371 375 $ hg log -G
372 376 o changeset: 2:65bd5f99a4a3
373 377 | tag: tip
374 378 | user: test
375 379 | date: Thu Jan 01 00:00:00 1970 +0000
376 380 | summary: d
377 381 |
378 382 @ changeset: 1:ef3a871183d7
379 383 | user: test
380 384 | date: Thu Jan 01 00:00:00 1970 +0000
381 385 | summary: b
382 386 |
383 387 o changeset: 0:9ab35a2d17cb
384 388 user: test
385 389 date: Thu Jan 01 00:00:00 1970 +0000
386 390 summary: a
387 391
388 392 $ restore
389 393
390 394 2 different branches and a common ancestor: 1 strip
391 395
392 396 $ hg strip 1 "2|4"
393 397 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
394 398 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
395 399 $ restore
396 400
397 401 verify fncache is kept up-to-date
398 402
399 403 $ touch a
400 404 $ hg ci -qAm a
401 405 $ cat .hg/store/fncache | sort
402 406 data/a.i
403 407 data/bar.i
404 408 $ hg strip tip
405 409 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
406 410 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
407 411 $ cat .hg/store/fncache
408 412 data/bar.i
409 413
410 414 stripping an empty revset
411 415
412 416 $ hg strip "1 and not 1"
413 417 abort: empty revision set
414 418 [255]
415 419
416 420 remove branchy history for qimport tests
417 421
418 422 $ hg strip 3
419 423 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
420 424
421 425
422 426 strip of applied mq should cleanup status file
423 427
424 428 $ echo "mq=" >> $HGRCPATH
425 429 $ hg up -C 3
426 430 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
427 431 $ echo fooagain >> bar
428 432 $ hg ci -mf
429 433 $ hg qimport -r tip:2
430 434
431 435 applied patches before strip
432 436
433 437 $ hg qapplied
434 438 d
435 439 e
436 440 f
437 441
438 442 stripping revision in queue
439 443
440 444 $ hg strip 3
441 445 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
442 446 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
443 447
444 448 applied patches after stripping rev in queue
445 449
446 450 $ hg qapplied
447 451 d
448 452
449 453 stripping ancestor of queue
450 454
451 455 $ hg strip 1
452 456 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
453 457 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
454 458
455 459 applied patches after stripping ancestor of queue
456 460
457 461 $ hg qapplied
458 462
459 463 Verify strip protects against stripping wc parent when there are uncommitted mods
460 464
461 465 $ echo b > b
462 466 $ echo bb > bar
463 467 $ hg add b
464 468 $ hg ci -m 'b'
465 469 $ hg log --graph
466 470 @ changeset: 1:76dcf9fab855
467 471 | tag: tip
468 472 | user: test
469 473 | date: Thu Jan 01 00:00:00 1970 +0000
470 474 | summary: b
471 475 |
472 476 o changeset: 0:9ab35a2d17cb
473 477 user: test
474 478 date: Thu Jan 01 00:00:00 1970 +0000
475 479 summary: a
476 480
477 481 $ hg up 0
478 482 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
479 483 $ echo c > bar
480 484 $ hg up -t false
481 485 merging bar
482 486 merging bar failed!
483 487 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
484 488 use 'hg resolve' to retry unresolved file merges
485 489 [1]
486 490 $ hg sum
487 491 parent: 1:76dcf9fab855 tip
488 492 b
489 493 branch: default
490 494 commit: 1 modified, 1 unknown, 1 unresolved
491 495 update: (current)
492 496 phases: 2 draft
493 497 mq: 3 unapplied
494 498
495 499 $ echo c > b
496 500 $ hg strip tip
497 501 abort: local changes found
498 502 [255]
499 503 $ hg strip tip --keep
500 504 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
501 505 $ hg log --graph
502 506 @ changeset: 0:9ab35a2d17cb
503 507 tag: tip
504 508 user: test
505 509 date: Thu Jan 01 00:00:00 1970 +0000
506 510 summary: a
507 511
508 512 $ hg status
509 513 M bar
510 514 ? b
511 515 ? bar.orig
512 516
513 517 $ rm bar.orig
514 518 $ hg sum
515 519 parent: 0:9ab35a2d17cb tip
516 520 a
517 521 branch: default
518 522 commit: 1 modified, 1 unknown
519 523 update: (current)
520 524 phases: 1 draft
521 525 mq: 3 unapplied
522 526
523 527 Strip adds, removes, modifies with --keep
524 528
525 529 $ touch b
526 530 $ hg add b
527 531 $ hg commit -mb
528 532 $ touch c
529 533
530 534 ... with a clean working dir
531 535
532 536 $ hg add c
533 537 $ hg rm bar
534 538 $ hg commit -mc
535 539 $ hg status
536 540 $ hg strip --keep tip
537 541 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
538 542 $ hg status
539 543 ! bar
540 544 ? c
541 545
542 546 ... with a dirty working dir
543 547
544 548 $ hg add c
545 549 $ hg rm bar
546 550 $ hg commit -mc
547 551 $ hg status
548 552 $ echo b > b
549 553 $ echo d > d
550 554 $ hg strip --keep tip
551 555 saved backup bundle to $TESTTMP/test/.hg/strip-backup/57e364c8a475-4cfed93c-backup.hg (glob)
552 556 $ hg status
553 557 M b
554 558 ! bar
555 559 ? c
556 560 ? d
557 561 $ cd ..
558 562
559 563 stripping many nodes on a complex graph (issue3299)
560 564
561 565 $ hg init issue3299
562 566 $ cd issue3299
563 567 $ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
564 568 $ hg strip 'not ancestors(x)'
565 569 saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
566 570
567 571 test hg strip -B bookmark
568 572
569 573 $ cd ..
570 574 $ hg init bookmarks
571 575 $ cd bookmarks
572 576 $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b'
573 577 $ hg bookmark -r 'a' 'todelete'
574 578 $ hg bookmark -r 'b' 'B'
575 579 $ hg bookmark -r 'b' 'nostrip'
576 580 $ hg bookmark -r 'c' 'delete'
577 581 $ hg up -C todelete
578 582 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
579 583 (activating bookmark todelete)
580 584 $ hg strip -B nostrip
581 585 bookmark 'nostrip' deleted
582 586 abort: empty revision set
583 587 [255]
584 588 $ hg strip -B todelete
585 589 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
586 590 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
587 591 bookmark 'todelete' deleted
588 592 $ hg id -ir dcbb326fdec2
589 593 abort: unknown revision 'dcbb326fdec2'!
590 594 [255]
591 595 $ hg id -ir d62d843c9a01
592 596 d62d843c9a01
593 597 $ hg bookmarks
594 598 B 9:ff43616e5d0f
595 599 delete 6:2702dd0c91e7
596 600 $ hg strip -B delete
597 601 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
598 602 bookmark 'delete' deleted
599 603 $ hg id -ir 6:2702dd0c91e7
600 604 abort: unknown revision '2702dd0c91e7'!
601 605 [255]
602 606 $ hg update B
603 607 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
604 608 (activating bookmark B)
605 609 $ echo a > a
606 610 $ hg add a
607 611 $ hg strip -B B
608 612 abort: local changes found
609 613 [255]
610 614 $ hg bookmarks
611 615 * B 6:ff43616e5d0f
612 616
613 617 Make sure no one adds back a -b option:
614 618
615 619 $ hg strip -b tip
616 620 hg strip: option -b not recognized
617 621 hg strip [-k] [-f] [-n] [-B bookmark] [-r] REV...
618 622
619 623 strip changesets and all their descendants from the repository
620 624
621 625 (use "hg help -e strip" to show help for the strip extension)
622 626
623 627 options ([+] can be repeated):
624 628
625 629 -r --rev REV [+] strip specified revision (optional, can specify revisions
626 630 without this option)
627 631 -f --force force removal of changesets, discard uncommitted changes
628 632 (no backup)
629 633 --no-backup no backups
630 634 -k --keep do not modify working directory during strip
631 635 -B --bookmark VALUE remove revs only reachable from given bookmark
632 636 --mq operate on patch repository
633 637
634 638 (use "hg strip -h" to show more help)
635 639 [255]
636 640
637 641 $ cd ..
638 642
639 643 Verify bundles don't get overwritten:
640 644
641 645 $ hg init doublebundle
642 646 $ cd doublebundle
643 647 $ touch a
644 648 $ hg commit -Aqm a
645 649 $ touch b
646 650 $ hg commit -Aqm b
647 651 $ hg strip -r 0
648 652 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
649 653 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg (glob)
650 654 $ ls .hg/strip-backup
651 655 3903775176ed-e68910bd-backup.hg
652 656 $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg
653 657 $ hg strip -r 0
654 658 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg (glob)
655 659 $ ls .hg/strip-backup
656 660 3903775176ed-54390173-backup.hg
657 661 3903775176ed-e68910bd-backup.hg
658 662 $ cd ..
659 663
660 664 Test that we only bundle the stripped changesets (issue4736)
661 665 ------------------------------------------------------------
662 666
663 667 initialization (previous repo is empty anyway)
664 668
665 669 $ hg init issue4736
666 670 $ cd issue4736
667 671 $ echo a > a
668 672 $ hg add a
669 673 $ hg commit -m commitA
670 674 $ echo b > b
671 675 $ hg add b
672 676 $ hg commit -m commitB
673 677 $ echo c > c
674 678 $ hg add c
675 679 $ hg commit -m commitC
676 680 $ hg up 'desc(commitB)'
677 681 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
678 682 $ echo d > d
679 683 $ hg add d
680 684 $ hg commit -m commitD
681 685 created new head
682 686 $ hg up 'desc(commitC)'
683 687 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
684 688 $ hg merge 'desc(commitD)'
685 689 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
686 690 (branch merge, don't forget to commit)
687 691 $ hg ci -m 'mergeCD'
688 692 $ hg log -G
689 693 @ changeset: 4:d8db9d137221
690 694 |\ tag: tip
691 695 | | parent: 2:5c51d8d6557d
692 696 | | parent: 3:6625a5168474
693 697 | | user: test
694 698 | | date: Thu Jan 01 00:00:00 1970 +0000
695 699 | | summary: mergeCD
696 700 | |
697 701 | o changeset: 3:6625a5168474
698 702 | | parent: 1:eca11cf91c71
699 703 | | user: test
700 704 | | date: Thu Jan 01 00:00:00 1970 +0000
701 705 | | summary: commitD
702 706 | |
703 707 o | changeset: 2:5c51d8d6557d
704 708 |/ user: test
705 709 | date: Thu Jan 01 00:00:00 1970 +0000
706 710 | summary: commitC
707 711 |
708 712 o changeset: 1:eca11cf91c71
709 713 | user: test
710 714 | date: Thu Jan 01 00:00:00 1970 +0000
711 715 | summary: commitB
712 716 |
713 717 o changeset: 0:105141ef12d0
714 718 user: test
715 719 date: Thu Jan 01 00:00:00 1970 +0000
716 720 summary: commitA
717 721
718 722
719 723 Check bundle behavior:
720 724
721 725 $ hg bundle -r 'desc(mergeCD)' --base 'desc(commitC)' ../issue4736.hg
722 726 2 changesets found
723 727 $ hg log -r 'bundle()' -R ../issue4736.hg
724 728 changeset: 3:6625a5168474
725 729 parent: 1:eca11cf91c71
726 730 user: test
727 731 date: Thu Jan 01 00:00:00 1970 +0000
728 732 summary: commitD
729 733
730 734 changeset: 4:d8db9d137221
731 735 tag: tip
732 736 parent: 2:5c51d8d6557d
733 737 parent: 3:6625a5168474
734 738 user: test
735 739 date: Thu Jan 01 00:00:00 1970 +0000
736 740 summary: mergeCD
737 741
738 742
739 743 check strip behavior
740 744
741 745 $ hg --config extensions.strip= strip 'desc(commitD)' --debug
742 746 resolving manifests
743 747 branchmerge: False, force: True, partial: False
744 748 ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71
745 749 c: other deleted -> r
746 750 removing c
747 751 d: other deleted -> r
748 752 removing d
749 753 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
750 754 2 changesets found
751 755 list of changesets:
752 756 6625a516847449b6f0fa3737b9ba56e9f0f3032c
753 757 d8db9d1372214336d2b5570f20ee468d2c72fa8b
758 bundle2-output-bundle: "HG20", (1 params) 1 parts total
759 bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
754 760 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg (glob)
755 761 invalid branchheads cache (served): tip differs
756 762 truncating cache/rbc-revs-v1 to 24
757 763 $ hg log -G
758 764 o changeset: 2:5c51d8d6557d
759 765 | tag: tip
760 766 | user: test
761 767 | date: Thu Jan 01 00:00:00 1970 +0000
762 768 | summary: commitC
763 769 |
764 770 @ changeset: 1:eca11cf91c71
765 771 | user: test
766 772 | date: Thu Jan 01 00:00:00 1970 +0000
767 773 | summary: commitB
768 774 |
769 775 o changeset: 0:105141ef12d0
770 776 user: test
771 777 date: Thu Jan 01 00:00:00 1970 +0000
772 778 summary: commitA
773 779
774 780
775 781 strip backup content
776 782
777 783 $ hg log -r 'bundle()' -R .hg/strip-backup/6625a5168474-*-backup.hg
778 784 changeset: 3:6625a5168474
779 785 parent: 1:eca11cf91c71
780 786 user: test
781 787 date: Thu Jan 01 00:00:00 1970 +0000
782 788 summary: commitD
783 789
784 790 changeset: 4:d8db9d137221
785 791 tag: tip
786 792 parent: 2:5c51d8d6557d
787 793 parent: 3:6625a5168474
788 794 user: test
789 795 date: Thu Jan 01 00:00:00 1970 +0000
790 796 summary: mergeCD
791 797
792 798
793 799 Error during post-close callback of the strip transaction
794 800 (They should be gracefully handled and reported)
795 801
796 802 $ cat > ../crashstrip.py << EOF
797 803 > from mercurial import error
798 804 > def reposetup(ui, repo):
799 805 > class crashstriprepo(repo.__class__):
800 806 > def transaction(self, desc, *args, **kwargs):
801 807 > tr = super(crashstriprepo, self).transaction(self, desc, *args, **kwargs)
802 808 > if desc == 'strip':
803 809 > def crash(tra): raise error.Abort('boom')
804 810 > tr.addpostclose('crash', crash)
805 811 > return tr
806 812 > repo.__class__ = crashstriprepo
807 813 > EOF
808 814 $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py
809 815 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg (glob)
810 816 strip failed, full bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg' (glob)
811 817 abort: boom
812 818 [255]
813 819
814 820
General Comments 0
You need to be logged in to leave comments. Login now