test-histedit-non-commute.t
306 lines
| 8.4 KiB
| text/troff
|
Tads3Lexer
/ tests / test-histedit-non-commute.t
Mads Kiilerich
|
r17085 | $ . "$TESTDIR/histedit-helpers.sh" | ||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> histedit= | ||||
> EOF | ||||
$ initrepo () | ||||
> { | ||||
> hg init $1 | ||||
> cd $1 | ||||
> for x in a b c d e f ; do | ||||
Pierre-Yves David
|
r17646 | > echo $x$x$x$x$x > $x | ||
> hg add $x | ||||
> done | ||||
> hg ci -m 'Initial commit' | ||||
> for x in a b c d e f ; do | ||||
Mads Kiilerich
|
r17085 | > echo $x > $x | ||
> hg ci -m $x | ||||
> done | ||||
Pierre-Yves David
|
r17646 | > echo 'I can haz no commute' > e | ||
Mads Kiilerich
|
r17085 | > hg ci -m 'does not commute with e' | ||
> cd .. | ||||
> } | ||||
$ initrepo r1 | ||||
$ cd r1 | ||||
Pierre-Yves David
|
r17646 | Initial generation of the command files | ||
$ EDITED="$TESTTMP/editedhistory" | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 3 >> $EDITED | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 4 >> $EDITED | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 7 >> $EDITED | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 5 >> $EDITED | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 6 >> $EDITED | ||||
$ cat $EDITED | ||||
pick 65a9a84f33fd 3 c | ||||
pick 00f1c5383965 4 d | ||||
pick 39522b764e3d 7 does not commute with e | ||||
pick 7b4e2f4b7bcd 5 e | ||||
pick 500cac37a696 6 f | ||||
Mads Kiilerich
|
r17085 | log before edit | ||
$ hg log --graph | ||||
Pierre-Yves David
|
r17646 | @ changeset: 7:39522b764e3d | ||
Mads Kiilerich
|
r17085 | | tag: tip | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: does not commute with e | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 6:500cac37a696 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: f | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 5:7b4e2f4b7bcd | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: e | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 4:00f1c5383965 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: d | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 3:65a9a84f33fd | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: c | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 2:da6535b52e45 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: b | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 1:c1f09da44841 | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: a | ||||
| | ||||
o changeset: 0:1715188a53c7 | ||||
Mads Kiilerich
|
r17085 | user: test | ||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
Pierre-Yves David
|
r17646 | summary: Initial commit | ||
Mads Kiilerich
|
r17085 | |||
edit the history | ||||
Pierre-Yves David
|
r19019 | $ hg histedit 3 --commands $EDITED 2>&1 | fixbundle | ||
Pierre-Yves David
|
r17647 | merging e | ||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') | ||
timeless
|
r27629 | Fix up the change (pick 39522b764e3d) | ||
(hg histedit --continue to resume) | ||||
Mads Kiilerich
|
r17085 | |||
abort the edit | ||||
$ hg histedit --abort 2>&1 | fixbundle | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
second edit set | ||||
$ hg log --graph | ||||
Pierre-Yves David
|
r17646 | @ changeset: 7:39522b764e3d | ||
Mads Kiilerich
|
r17085 | | tag: tip | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: does not commute with e | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 6:500cac37a696 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: f | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 5:7b4e2f4b7bcd | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: e | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 4:00f1c5383965 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: d | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 3:65a9a84f33fd | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: c | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 2:da6535b52e45 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: b | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 1:c1f09da44841 | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: a | ||||
| | ||||
o changeset: 0:1715188a53c7 | ||||
Mads Kiilerich
|
r17085 | user: test | ||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
Pierre-Yves David
|
r17646 | summary: Initial commit | ||
Mads Kiilerich
|
r17085 | |||
edit the history | ||||
Pierre-Yves David
|
r19019 | $ hg histedit 3 --commands $EDITED 2>&1 | fixbundle | ||
Pierre-Yves David
|
r17647 | merging e | ||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') | ||
timeless
|
r27629 | Fix up the change (pick 39522b764e3d) | ||
(hg histedit --continue to resume) | ||||
Mads Kiilerich
|
r17085 | |||
fix up | ||||
Pierre-Yves David
|
r17646 | $ echo 'I can haz no commute' > e | ||
Pierre-Yves David
|
r17647 | $ hg resolve --mark e | ||
Pierre-Yves David
|
r21947 | (no more unresolved files) | ||
timeless
|
r27627 | continue: hg histedit --continue | ||
Mads Kiilerich
|
r17085 | $ hg histedit --continue 2>&1 | fixbundle | ||
Pierre-Yves David
|
r17647 | merging e | ||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') | ||
timeless
|
r27629 | Fix up the change (pick 7b4e2f4b7bcd) | ||
(hg histedit --continue to resume) | ||||
Augie Fackler
|
r41211 | We forcibly enable curses here so we can verify that continuing works | ||
with curses enabled. | ||||
Brian Hulette
|
r53176 | $ hg continue --config ui.interactive=true \ | ||
Augie Fackler
|
r41211 | > --config ui.interface=curses 2>&1 | fixbundle | ||
Siddharth Agarwal
|
r32057 | abort: unresolved merge conflicts (see 'hg help resolve') | ||
Mads Kiilerich
|
r17085 | |||
Pierre-Yves David
|
r17688 | This failure is caused by 7b4e2f4b7bcd "e" not rebasing the non commutative | ||
former children. | ||||
Mads Kiilerich
|
r17085 | just continue this time | ||
Pierre-Yves David
|
r17647 | $ hg revert -r 'p1()' e | ||
Siddharth Agarwal
|
r32057 | make sure the to-be-empty commit doesn't screw up the state (issue5545) | ||
$ hg histedit --continue 2>&1 | fixbundle | ||||
abort: unresolved merge conflicts (see 'hg help resolve') | ||||
Pierre-Yves David
|
r17647 | $ hg resolve --mark e | ||
Pierre-Yves David
|
r21947 | (no more unresolved files) | ||
timeless
|
r27627 | continue: hg histedit --continue | ||
Brian Hulette
|
r53176 | $ hg continue 2>&1 | fixbundle | ||
timeless
|
r28340 | 7b4e2f4b7bcd: skipping changeset (no changes) | ||
Mads Kiilerich
|
r17085 | |||
log after edit | ||||
$ hg log --graph | ||||
Pierre-Yves David
|
r18437 | @ changeset: 6:7efe1373e4bc | ||
Mads Kiilerich
|
r17085 | | tag: tip | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: f | ||||
| | ||||
Pierre-Yves David
|
r18437 | o changeset: 5:e334d87a1e55 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: does not commute with e | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 4:00f1c5383965 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: d | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 3:65a9a84f33fd | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: c | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 2:da6535b52e45 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: b | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 1:c1f09da44841 | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: a | ||||
| | ||||
o changeset: 0:1715188a53c7 | ||||
Mads Kiilerich
|
r17085 | user: test | ||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
Pierre-Yves David
|
r17646 | summary: Initial commit | ||
Mads Kiilerich
|
r17085 | |||
start over | ||||
$ cd .. | ||||
$ initrepo r2 | ||||
$ cd r2 | ||||
Pierre-Yves David
|
r17646 | $ rm $EDITED | ||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 3 >> $EDITED | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 4 >> $EDITED | ||||
$ hg log --template 'mess {node|short} {rev} {desc}\n' -r 7 >> $EDITED | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 5 >> $EDITED | ||||
$ hg log --template 'pick {node|short} {rev} {desc}\n' -r 6 >> $EDITED | ||||
$ cat $EDITED | ||||
pick 65a9a84f33fd 3 c | ||||
pick 00f1c5383965 4 d | ||||
mess 39522b764e3d 7 does not commute with e | ||||
pick 7b4e2f4b7bcd 5 e | ||||
pick 500cac37a696 6 f | ||||
Mads Kiilerich
|
r17085 | |||
edit the history, this time with a fold action | ||||
Pierre-Yves David
|
r19019 | $ hg histedit 3 --commands $EDITED 2>&1 | fixbundle | ||
Pierre-Yves David
|
r17647 | merging e | ||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') | ||
timeless
|
r27629 | Fix up the change (mess 39522b764e3d) | ||
(hg histedit --continue to resume) | ||||
Mads Kiilerich
|
r17085 | |||
Pierre-Yves David
|
r17646 | $ echo 'I can haz no commute' > e | ||
Pierre-Yves David
|
r17647 | $ hg resolve --mark e | ||
Pierre-Yves David
|
r21947 | (no more unresolved files) | ||
timeless
|
r27627 | continue: hg histedit --continue | ||
Pierre-Yves David
|
r19020 | $ hg histedit --continue 2>&1 | fixbundle | ||
Pierre-Yves David
|
r17647 | merging e | ||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') | ||
timeless
|
r27629 | Fix up the change (pick 7b4e2f4b7bcd) | ||
(hg histedit --continue to resume) | ||||
Mads Kiilerich
|
r17085 | second edit also fails, but just continue | ||
Pierre-Yves David
|
r17647 | $ hg revert -r 'p1()' e | ||
$ hg resolve --mark e | ||||
Pierre-Yves David
|
r21947 | (no more unresolved files) | ||
timeless
|
r27627 | continue: hg histedit --continue | ||
Brian Hulette
|
r53176 | $ hg continue 2>&1 | fixbundle | ||
timeless
|
r28340 | 7b4e2f4b7bcd: skipping changeset (no changes) | ||
Mads Kiilerich
|
r17085 | |||
post message fix | ||||
$ hg log --graph | ||||
Pierre-Yves David
|
r19019 | @ changeset: 6:7efe1373e4bc | ||
Mads Kiilerich
|
r17085 | | tag: tip | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: f | ||||
| | ||||
Pierre-Yves David
|
r19019 | o changeset: 5:e334d87a1e55 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
Pierre-Yves David
|
r19019 | | summary: does not commute with e | ||
Mads Kiilerich
|
r17085 | | | ||
Pierre-Yves David
|
r17646 | o changeset: 4:00f1c5383965 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: d | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 3:65a9a84f33fd | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: c | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 2:da6535b52e45 | ||
Mads Kiilerich
|
r17085 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: b | ||||
| | ||||
Pierre-Yves David
|
r17646 | o changeset: 1:c1f09da44841 | ||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: a | ||||
| | ||||
o changeset: 0:1715188a53c7 | ||||
Mads Kiilerich
|
r17085 | user: test | ||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
Pierre-Yves David
|
r17646 | summary: Initial commit | ||
Mads Kiilerich
|
r17085 | |||
Augie Fackler
|
r45177 | An invalid editor shouldn't leave the user in a broken state: | ||
$ EDITOR=totally-not-a-thing-unsensible-editor-value hg histedit 4 | ||||
Mads Kiilerich
|
r17085 | $ cd .. | ||