##// END OF EJS Templates
tests: add test case for issue 6262...
Martin von Zweigbergk -
r48343:f97fc3c6 default draft
parent child Browse files
Show More
@@ -1,576 +1,611 b''
1 1 #testcases obsstore-off obsstore-on
2 2
3 3 $ cat << EOF >> $HGRCPATH
4 4 > [extensions]
5 5 > amend=
6 6 > debugdrawdag=$TESTDIR/drawdag.py
7 7 > [diff]
8 8 > git=1
9 9 > EOF
10 10
11 11 #if obsstore-on
12 12 $ cat << EOF >> $HGRCPATH
13 13 > [experimental]
14 14 > evolution.createmarkers=True
15 15 > EOF
16 16 #endif
17 17
18 18 Basic amend
19 19
20 20 $ hg init repo1
21 21 $ cd repo1
22 22 $ hg debugdrawdag <<'EOS'
23 23 > B
24 24 > |
25 25 > A
26 26 > EOS
27 27
28 28 $ hg update B -q
29 29 $ echo 2 >> B
30 30
31 31 $ hg amend
32 32 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg (obsstore-off !)
33 33 #if obsstore-off
34 34 $ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n'
35 35 @ 1 be169c7e8dbe B
36 36 | diff --git a/B b/B
37 37 | new file mode 100644
38 38 | --- /dev/null
39 39 | +++ b/B
40 40 | @@ -0,0 +1,1 @@
41 41 | +B2
42 42 |
43 43 o 0 426bada5c675 A
44 44 diff --git a/A b/A
45 45 new file mode 100644
46 46 --- /dev/null
47 47 +++ b/A
48 48 @@ -0,0 +1,1 @@
49 49 +A
50 50 \ No newline at end of file
51 51
52 52 #else
53 53 $ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n'
54 54 @ 2 be169c7e8dbe B
55 55 | diff --git a/B b/B
56 56 | new file mode 100644
57 57 | --- /dev/null
58 58 | +++ b/B
59 59 | @@ -0,0 +1,1 @@
60 60 | +B2
61 61 |
62 62 | x 1 112478962961 B
63 63 |/ diff --git a/B b/B
64 64 | new file mode 100644
65 65 | --- /dev/null
66 66 | +++ b/B
67 67 | @@ -0,0 +1,1 @@
68 68 | +B
69 69 | \ No newline at end of file
70 70 |
71 71 o 0 426bada5c675 A
72 72 diff --git a/A b/A
73 73 new file mode 100644
74 74 --- /dev/null
75 75 +++ b/A
76 76 @@ -0,0 +1,1 @@
77 77 +A
78 78 \ No newline at end of file
79 79
80 80 #endif
81 81
82 82 Nothing changed
83 83
84 84 $ hg amend
85 85 nothing changed
86 86 [1]
87 87
88 88 $ hg amend -d "0 0"
89 89 nothing changed
90 90 [1]
91 91
92 92 $ hg amend -d "Thu Jan 01 00:00:00 1970 UTC"
93 93 nothing changed
94 94 [1]
95 95
96 96 #if obsstore-on
97 97 $ hg init repo-merge-state
98 98 $ cd repo-merge-state
99 99 $ echo a > f
100 100 $ hg ci -Aqm a
101 101 $ echo b > f
102 102 $ hg ci -Aqm b
103 103 $ echo c > f
104 104 $ hg co -m '.^'
105 105 merging f
106 106 warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
107 107 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
108 108 use 'hg resolve' to retry unresolved file merges
109 109 [1]
110 110 $ echo d > f
111 111 $ hg resolve -m f
112 112 (no more unresolved files)
113 113 $ hg ci --amend --config experimental.evolution.allowunstable=True
114 114 1 new orphan changesets
115 115 $ hg resolve -l
116 116 $ cd ..
117 117 #endif
118 118
119 119 Matcher and metadata options
120 120
121 121 $ echo 3 > C
122 122 $ echo 4 > D
123 123 $ hg add C D
124 124 $ hg amend -m NEWMESSAGE -I C
125 125 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/be169c7e8dbe-7684ddc5-amend.hg (obsstore-off !)
126 126 $ hg log -r . -T '{node|short} {desc} {files}\n'
127 127 c7ba14d9075b NEWMESSAGE B C
128 128 $ echo 5 > E
129 129 $ rm C
130 130 $ hg amend -d '2000 1000' -u 'Foo <foo@example.com>' -A C D
131 131 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/c7ba14d9075b-b3e76daa-amend.hg (obsstore-off !)
132 132 $ hg log -r . -T '{node|short} {desc} {files} {author} {date}\n'
133 133 14f6c4bcc865 NEWMESSAGE B D Foo <foo@example.com> 2000.01000
134 134
135 135 Amend with editor
136 136
137 137 $ cat > $TESTTMP/prefix.sh <<'EOF'
138 138 > printf 'EDITED: ' > $TESTTMP/msg
139 139 > cat "$1" >> $TESTTMP/msg
140 140 > mv $TESTTMP/msg "$1"
141 141 > EOF
142 142 $ chmod +x $TESTTMP/prefix.sh
143 143
144 144 $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend --edit
145 145 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/14f6c4bcc865-6591f15d-amend.hg (obsstore-off !)
146 146 $ hg log -r . -T '{node|short} {desc}\n'
147 147 298f085230c3 EDITED: NEWMESSAGE
148 148 $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend -e -m MSG
149 149 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/298f085230c3-d81a6ad3-amend.hg (obsstore-off !)
150 150 $ hg log -r . -T '{node|short} {desc}\n'
151 151 974f07f28537 EDITED: MSG
152 152
153 153 $ echo FOO > $TESTTMP/msg
154 154 $ hg amend -l $TESTTMP/msg -m BAR
155 155 abort: cannot specify both --message and --logfile
156 156 [10]
157 157 $ hg amend -l $TESTTMP/msg
158 158 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/974f07f28537-edb6470a-amend.hg (obsstore-off !)
159 159 $ hg log -r . -T '{node|short} {desc}\n'
160 160 507be9bdac71 FOO
161 161
162 162 Interactive mode
163 163
164 164 $ touch F G
165 165 $ hg add F G
166 166 $ cat <<EOS | hg amend -i --config ui.interactive=1
167 167 > y
168 168 > n
169 169 > EOS
170 170 diff --git a/F b/F
171 171 new file mode 100644
172 172 examine changes to 'F'?
173 173 (enter ? for help) [Ynesfdaq?] y
174 174
175 175 diff --git a/G b/G
176 176 new file mode 100644
177 177 examine changes to 'G'?
178 178 (enter ? for help) [Ynesfdaq?] n
179 179
180 180 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (obsstore-off !)
181 181 $ hg log -r . -T '{files}\n'
182 182 B D F
183 183
184 184 Amend in the middle of a stack
185 185
186 186 $ hg init $TESTTMP/repo2
187 187 $ cd $TESTTMP/repo2
188 188 $ hg debugdrawdag <<'EOS'
189 189 > C
190 190 > |
191 191 > B
192 192 > |
193 193 > A
194 194 > EOS
195 195
196 196 $ hg update -q B
197 197 $ echo 2 >> B
198 198 $ hg amend
199 199 abort: cannot amend changeset, as that will orphan 1 descendants
200 200 (see 'hg help evolution.instability')
201 201 [10]
202 202
203 203 #if obsstore-on
204 204
205 205 With allowunstable, amend could work in the middle of a stack
206 206
207 207 $ cat >> $HGRCPATH <<EOF
208 208 > [experimental]
209 209 > evolution.createmarkers=True
210 210 > evolution.allowunstable=True
211 211 > EOF
212 212
213 213 $ hg amend
214 214 1 new orphan changesets
215 215 $ hg log -T '{rev} {node|short} {desc}\n' -G
216 216 @ 3 be169c7e8dbe B
217 217 |
218 218 | * 2 26805aba1e60 C
219 219 | |
220 220 | x 1 112478962961 B
221 221 |/
222 222 o 0 426bada5c675 A
223 223
224 224 Checking the note stored in the obsmarker
225 225
226 226 $ echo foo > bar
227 227 $ hg add bar
228 228 $ hg amend --note 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
229 229 abort: cannot store a note of more than 255 bytes
230 230 [10]
231 231 $ hg amend --note "adding bar"
232 232 $ hg debugobsolete -r .
233 233 112478962961147124edd43549aedd1a335e44bf be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
234 234 be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 16084da537dd8f84cfdb3055c633772269d62e1b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'adding bar', 'operation': 'amend', 'user': 'test'}
235 235
236 236 Cannot cause divergence by default
237 237
238 238 $ hg co --hidden 1
239 239 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
240 240 $ hg amend -m divergent
241 241 abort: cannot amend 112478962961, as that creates content-divergence with 16084da537dd
242 242 (add --verbose for details or see 'hg help evolution.instability')
243 243 [10]
244 244 $ hg amend -m divergent --verbose
245 245 abort: cannot amend 112478962961, as that creates content-divergence with 16084da537dd
246 246 changeset 112478962961 already has a successor in changeset 16084da537dd
247 247 rewriting changeset 112478962961 would create "content-divergence"
248 248 set experimental.evolution.allowdivergence=True to skip this check
249 249 (see 'hg help evolution.instability' for details on content-divergence)
250 250 [10]
251 251 $ hg amend -m divergent --config experimental.evolution.allowdivergence=true
252 252 2 new content-divergent changesets
253 253
254 Amending pruned part of split commit does not cause divergence (issue6262)
255
256 $ hg debugobsolete $(hg log -T '{node}' -r .)
257 1 new obsolescence markers
258 obsoleted 1 changesets
259 $ hg co '.^'
260 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
261 $ node_B=$(hg log -T '{node}' -r 4)
262 $ hg revert -r $node_B -a
263 adding B
264 adding bar
265 $ hg ci -m B-split1
266 created new head
267 $ node_B_split1=$(hg log -T '{node}' -r .)
268 $ hg co '.^'
269 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
270 $ hg revert -r 4 -a
271 adding B
272 adding bar
273 $ hg ci -m B-split2
274 created new head
275 $ node_B_split2=$(hg log -T '{node}' -r .)
276 $ hg debugobsolete $node_B $node_B_split1 $node_B_split2
277 1 new obsolescence markers
278 obsoleted 1 changesets
279 $ hg debugobsolete $node_B_split2
280 1 new obsolescence markers
281 obsoleted 1 changesets
282 $ hg co --hidden $node_B_split2
283 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
284 $ hg amend -m 'revived B-split2'
285 abort: cannot amend 809fe227532f, as that creates content-divergence with c68306a86921, from 16084da537dd (known-bad-output !)
286 (add --verbose for details or see 'hg help evolution.instability') (known-bad-output !)
287 [10]
288
254 289 Hidden common predecessor of divergence does not cause crash
255 290
256 291 First create C1 as a pruned successor of C
257 292 $ hg co C
258 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
293 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
259 294 $ hg amend -m C1
260 295 $ hg tag --local C1
261 296 $ hg debugobsolete $(hg log -T '{node}' -r C1)
262 297 1 new obsolescence markers
263 298 obsoleted 1 changesets
264 299 Now create C2 as other side of divergence (not actually divergent because C1 is
265 300 pruned)
266 301 $ hg co C
267 302 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
268 303 $ hg amend -m C2
269 304 1 new orphan changesets
270 305 Make the common predecessor (C) pruned
271 306 $ hg tag --local --remove C
272 307 $ hg co C1
273 308 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
274 309 Try to cause divergence
275 310 $ hg amend -m C11
276 311 abort: cannot amend 2758767f5d17, as that creates content-divergence with bfcb433a0dea, from 26805aba1e60
277 312 (add --verbose for details or see 'hg help evolution.instability')
278 313 [10]
279 314 #endif
280 315
281 316 Cannot amend public changeset
282 317
283 318 $ hg phase -r A --public
284 319 $ hg update -C -q A
285 320 $ hg amend -m AMEND
286 321 abort: cannot amend public changesets: 426bada5c675
287 322 (see 'hg help phases' for details)
288 323 [10]
289 324
290 325 Amend a merge changeset
291 326
292 327 $ hg init $TESTTMP/repo3
293 328 $ cd $TESTTMP/repo3
294 329 $ hg debugdrawdag <<'EOS'
295 330 > C
296 331 > /|
297 332 > A B
298 333 > EOS
299 334 $ hg update -q C
300 335 $ hg amend -m FOO
301 336 saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg (obsstore-off !)
302 337 $ rm .hg/localtags
303 338 $ hg log -G -T '{desc}\n'
304 339 @ FOO
305 340 |\
306 341 | o B
307 342 |
308 343 o A
309 344
310 345
311 346 More complete test for status changes (issue5732)
312 347 -------------------------------------------------
313 348
314 349 Generates history of files having 3 states, r0_r1_wc:
315 350
316 351 r0: ground (content/missing)
317 352 r1: old state to be amended (content/missing, where missing means removed)
318 353 wc: changes to be included in r1 (content/missing-tracked/untracked)
319 354
320 355 $ hg init $TESTTMP/wcstates
321 356 $ cd $TESTTMP/wcstates
322 357
323 358 $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 1
324 359 $ hg addremove -q --similarity 0
325 360 $ hg commit -m0
326 361
327 362 $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 2
328 363 $ hg addremove -q --similarity 0
329 364 $ hg commit -m1
330 365
331 366 $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 wc
332 367 $ hg addremove -q --similarity 0
333 368 $ hg forget *_*_*-untracked
334 369 $ rm *_*_missing-*
335 370
336 371 amend r1 to include wc changes
337 372
338 373 $ hg amend
339 374 saved backup bundle to * (glob) (obsstore-off !)
340 375
341 376 clean/modified/removed/added states of the amended revision
342 377
343 378 $ hg status --all --change . 'glob:content1_*_content1-tracked'
344 379 C content1_content1_content1-tracked
345 380 C content1_content2_content1-tracked
346 381 C content1_missing_content1-tracked
347 382 $ hg status --all --change . 'glob:content1_*_content[23]-tracked'
348 383 M content1_content1_content3-tracked
349 384 M content1_content2_content2-tracked
350 385 M content1_content2_content3-tracked
351 386 M content1_missing_content3-tracked
352 387 $ hg status --all --change . 'glob:content1_*_missing-tracked'
353 388 M content1_content2_missing-tracked
354 389 R content1_missing_missing-tracked
355 390 C content1_content1_missing-tracked
356 391 $ hg status --all --change . 'glob:content1_*_*-untracked'
357 392 R content1_content1_content1-untracked
358 393 R content1_content1_content3-untracked
359 394 R content1_content1_missing-untracked
360 395 R content1_content2_content1-untracked
361 396 R content1_content2_content2-untracked
362 397 R content1_content2_content3-untracked
363 398 R content1_content2_missing-untracked
364 399 R content1_missing_content1-untracked
365 400 R content1_missing_content3-untracked
366 401 R content1_missing_missing-untracked
367 402 $ hg status --all --change . 'glob:missing_content2_*'
368 403 A missing_content2_content2-tracked
369 404 A missing_content2_content3-tracked
370 405 A missing_content2_missing-tracked
371 406 $ hg status --all --change . 'glob:missing_missing_*'
372 407 A missing_missing_content3-tracked
373 408
374 409 working directory should be all clean (with some missing/untracked files)
375 410
376 411 $ hg status --all 'glob:*_content?-tracked'
377 412 C content1_content1_content1-tracked
378 413 C content1_content1_content3-tracked
379 414 C content1_content2_content1-tracked
380 415 C content1_content2_content2-tracked
381 416 C content1_content2_content3-tracked
382 417 C content1_missing_content1-tracked
383 418 C content1_missing_content3-tracked
384 419 C missing_content2_content2-tracked
385 420 C missing_content2_content3-tracked
386 421 C missing_missing_content3-tracked
387 422 $ hg status --all 'glob:*_missing-tracked'
388 423 ! content1_content1_missing-tracked
389 424 ! content1_content2_missing-tracked
390 425 ! content1_missing_missing-tracked
391 426 ! missing_content2_missing-tracked
392 427 ! missing_missing_missing-tracked
393 428 $ hg status --all 'glob:*-untracked'
394 429 ? content1_content1_content1-untracked
395 430 ? content1_content1_content3-untracked
396 431 ? content1_content2_content1-untracked
397 432 ? content1_content2_content2-untracked
398 433 ? content1_content2_content3-untracked
399 434 ? content1_missing_content1-untracked
400 435 ? content1_missing_content3-untracked
401 436 ? missing_content2_content2-untracked
402 437 ? missing_content2_content3-untracked
403 438 ? missing_missing_content3-untracked
404 439
405 440 =================================
406 441 Test backup-bundle config option|
407 442 =================================
408 443 $ hg init $TESTTMP/repo4
409 444 $ cd $TESTTMP/repo4
410 445 $ echo a>a
411 446 $ hg ci -Aqma
412 447 $ echo oops>b
413 448 $ hg ci -Aqm "b"
414 449 $ echo partiallyfixed > b
415 450
416 451 #if obsstore-off
417 452 $ hg amend
418 453 saved backup bundle to $TESTTMP/repo4/.hg/strip-backup/95e899acf2ce-f11cb050-amend.hg
419 454 When backup-bundle config option is set:
420 455 $ cat << EOF >> $HGRCPATH
421 456 > [rewrite]
422 457 > backup-bundle = False
423 458 > EOF
424 459 $ echo fixed > b
425 460 $ hg amend
426 461
427 462 #else
428 463 $ hg amend
429 464 When backup-bundle config option is set:
430 465 $ cat << EOF >> $HGRCPATH
431 466 > [rewrite]
432 467 > backup-bundle = False
433 468 > EOF
434 469 $ echo fixed > b
435 470 $ hg amend
436 471
437 472 #endif
438 473 ==========================================
439 474 Test update-timestamp config option|
440 475 ==========================================
441 476
442 477 $ cat >> $HGRCPATH << EOF
443 478 > [extensions]
444 479 > amend=
445 480 > mockmakedate = $TESTDIR/mockmakedate.py
446 481 > EOF
447 482
448 483 $ hg init $TESTTMP/repo5
449 484 $ cd $TESTTMP/repo5
450 485 $ cat <<'EOF' >> .hg/hgrc
451 486 > [command-templates]
452 487 > log = 'user: {user}
453 488 > date: {date|date}
454 489 > summary: {desc|firstline}\n'
455 490 > EOF
456 491
457 492 $ echo a>a
458 493 $ hg ci -Am 'commit 1'
459 494 adding a
460 495
461 496 When updatetimestamp is False
462 497
463 498 $ hg amend --date '1997-1-1 0:1'
464 499 $ hg log --limit 1
465 500 user: test
466 501 date: Wed Jan 01 00:01:00 1997 +0000
467 502 summary: commit 1
468 503
469 504 When update-timestamp is True and no other change than the date
470 505
471 506 $ hg amend --config rewrite.update-timestamp=True
472 507 nothing changed
473 508 [1]
474 509 $ hg log --limit 1
475 510 user: test
476 511 date: Wed Jan 01 00:01:00 1997 +0000
477 512 summary: commit 1
478 513
479 514 When update-timestamp is True and there is other change than the date
480 515 $ hg amend --user foobar --config rewrite.update-timestamp=True
481 516 $ hg log --limit 1
482 517 user: foobar
483 518 date: Thu Jan 01 00:00:02 1970 +0000
484 519 summary: commit 1
485 520
486 521 When date option is applicable and update-timestamp is True
487 522 $ hg amend --date '1998-1-1 0:1' --config rewrite.update-timestamp=True
488 523 $ hg log --limit 1
489 524 user: foobar
490 525 date: Thu Jan 01 00:01:00 1998 +0000
491 526 summary: commit 1
492 527
493 528 Unlike rewrite.update-timestamp, -D/--currentdate always updates the timestamp
494 529
495 530 $ hg amend -D
496 531 $ hg log --limit 1
497 532 user: foobar
498 533 date: Thu Jan 01 00:00:04 1970 +0000
499 534 summary: commit 1
500 535
501 536 $ hg amend -D --config rewrite.update-timestamp=True
502 537 $ hg log --limit 1
503 538 user: foobar
504 539 date: Thu Jan 01 00:00:05 1970 +0000
505 540 summary: commit 1
506 541
507 542 rewrite.update-timestamp can be negated by --no-currentdate
508 543
509 544 $ hg amend --config rewrite.update-timestamp=True --no-currentdate -u baz
510 545 $ hg log --limit 1
511 546 user: baz
512 547 date: Thu Jan 01 00:00:05 1970 +0000
513 548 summary: commit 1
514 549
515 550 Bad combination of date options:
516 551
517 552 $ hg amend -D --date '0 0'
518 553 abort: cannot specify both --date and --currentdate
519 554 [10]
520 555
521 556 Close branch
522 557
523 558 $ hg amend --secret --close-branch
524 559 $ hg log --limit 1 -T 'close={get(extras, "close")}\nphase={phase}\n'
525 560 close=1
526 561 phase=secret
527 562
528 563 $ cd ..
529 564
530 565 Corner case of amend from issue6157:
531 566 - working copy parent has a change to file `a`
532 567 - working copy has the inverse change
533 568 - we amend the working copy parent for files other than `a`
534 569 hg used to include the changes to `a` anyway.
535 570
536 571 $ hg init 6157; cd 6157
537 572 $ echo a > a; echo b > b; hg commit -qAm_
538 573 $ echo a2 > a; hg commit -qm_
539 574 $ hg diff --stat -c .
540 575 a | 2 +-
541 576 1 files changed, 1 insertions(+), 1 deletions(-)
542 577 $ echo a > a; echo b2 > b; hg amend -q b
543 578 $ hg diff --stat -c .
544 579 a | 2 +-
545 580 b | 2 +-
546 581 2 files changed, 2 insertions(+), 2 deletions(-)
547 582
548 583 Modifying a file while the editor is open can cause dirstate corruption
549 584 (issue6233)
550 585
551 586 $ cd $TESTTMP
552 587 $ hg init modify-during-amend; cd modify-during-amend
553 588 $ echo r0 > foo; hg commit -qAm "r0"
554 589 $ echo alpha > foo; hg commit -qm "alpha"
555 590 $ echo beta >> foo
556 591 $ cat > $TESTTMP/touchy_editor.sh <<EOF
557 592 > sleep 1
558 593 > echo delta >> "$TESTTMP/modify-during-amend/foo"
559 594 > sleep 1
560 595 > echo hi > "\$1"
561 596 > sleep 1
562 597 > EOF
563 598 $ HGEDITOR="sh $TESTTMP/touchy_editor.sh" hg commit --amend
564 599 $ if (hg diff -c . | grep 'delta' >/dev/null) || [ -n "$(hg status)" ]; then
565 600 > echo "OK."
566 601 > else
567 602 > echo "Bug detected. 'delta' is not part of the commit OR the wdir"
568 603 > echo "Diff and status before rebuild:"
569 604 > hg diff
570 605 > hg status
571 606 > hg debugrebuilddirstate
572 607 > echo "Diff and status after rebuild:"
573 608 > hg diff
574 609 > hg status
575 610 > fi
576 611 OK.
General Comments 0
You need to be logged in to leave comments. Login now