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