test-histedit-non-commute-abort.t
174 lines
| 4.7 KiB
| text/troff
|
Tads3Lexer
/ tests / test-histedit-non-commute-abort.t
Mads Kiilerich
|
r17085 | $ . "$TESTDIR/histedit-helpers.sh" | ||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> histedit= | ||||
> EOF | ||||
$ initrepo () | ||||
> { | ||||
> hg init r | ||||
> cd r | ||||
> for x in a b c d e f ; do | ||||
> echo $x > $x | ||||
> hg add $x | ||||
> hg ci -m $x | ||||
> done | ||||
> echo a >> e | ||||
> hg ci -m 'does not commute with e' | ||||
> cd .. | ||||
> } | ||||
$ initrepo | ||||
$ cd r | ||||
log before edit | ||||
$ hg log --graph | ||||
@ changeset: 6:bfa474341cc9 | ||||
| tag: tip | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: does not commute with e | ||||
| | ||||
o changeset: 5:652413bf663e | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: f | ||||
| | ||||
o changeset: 4:e860deea161a | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: e | ||||
| | ||||
o changeset: 3:055a42cdd887 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: d | ||||
| | ||||
o changeset: 2:177f92b77385 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: c | ||||
| | ||||
o changeset: 1:d2ae7f538514 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: b | ||||
| | ||||
o changeset: 0:cb9a9f314b8b | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: a | ||||
edit the history | ||||
Pierre-Yves David
|
r19019 | $ hg histedit 177f92b77385 --commands - 2>&1 <<EOF | fixbundle | ||
> pick 177f92b77385 c | ||||
> pick 055a42cdd887 d | ||||
> pick bfa474341cc9 does not commute with e | ||||
> pick e860deea161a e | ||||
> pick 652413bf663e f | ||||
> EOF | ||||
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 e860deea161a) | ||
(hg histedit --continue to resume) | ||||
Mads Kiilerich
|
r17085 | |||
Siddharth Agarwal
|
r27027 | insert unsupported advisory merge record | ||
$ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x | ||||
$ hg debugmergestate | ||||
Martin von Zweigbergk
|
r44880 | local (local): 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758 | ||
other (histedit): e860deea161a2f77de56603b340ebbb4536308ae | ||||
file: e (state "u") | ||||
local path: e (hash 58e6b3a414a1e090dfc6029add0f3555ccba127f, flags "") | ||||
ancestor path: e (node 0000000000000000000000000000000000000000) | ||||
Siddharth Agarwal
|
r27027 | other path: e (node 6b67ccefd5ce6de77e7ead4f5292843a0255329f) | ||
Martin von Zweigbergk
|
r44880 | extra: ancestorlinknode = 0000000000000000000000000000000000000000 | ||
Pulkit Goyal
|
r47567 | extra: merged = yes | ||
Siddharth Agarwal
|
r27027 | $ hg resolve -l | ||
U e | ||||
Mads Kiilerich
|
r17085 | |||
Siddharth Agarwal
|
r27027 | insert unsupported mandatory merge record | ||
$ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X | ||||
$ hg debugmergestate | ||||
Martin von Zweigbergk
|
r44880 | abort: unsupported merge state records: X | ||
(see https://mercurial-scm.org/wiki/MergeStateRecords for more information) | ||||
[255] | ||||
Siddharth Agarwal
|
r27027 | $ hg resolve -l | ||
abort: unsupported merge state records: X | ||||
(see https://mercurial-scm.org/wiki/MergeStateRecords for more information) | ||||
[255] | ||||
$ hg resolve -ma | ||||
abort: unsupported merge state records: X | ||||
(see https://mercurial-scm.org/wiki/MergeStateRecords for more information) | ||||
[255] | ||||
abort the edit (should clear out merge state) | ||||
Mads Kiilerich
|
r17085 | $ hg histedit --abort 2>&1 | fixbundle | ||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
Siddharth Agarwal
|
r27027 | $ hg debugmergestate | ||
no merge state found | ||||
Mads Kiilerich
|
r17085 | |||
log after abort | ||||
Pierre-Yves David
|
r17647 | $ hg resolve -l | ||
Mads Kiilerich
|
r17085 | $ hg log --graph | ||
@ changeset: 6:bfa474341cc9 | ||||
| tag: tip | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: does not commute with e | ||||
| | ||||
o changeset: 5:652413bf663e | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: f | ||||
| | ||||
o changeset: 4:e860deea161a | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: e | ||||
| | ||||
o changeset: 3:055a42cdd887 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: d | ||||
| | ||||
o changeset: 2:177f92b77385 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: c | ||||
| | ||||
o changeset: 1:d2ae7f538514 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: b | ||||
| | ||||
o changeset: 0:cb9a9f314b8b | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: a | ||||
Augie Fackler
|
r43247 | Early tree conflict doesn't leave histedit in a wedged state. Note | ||
that we don't specify --commands here: we catch the problem before we | ||||
even prompt the user for rules, sidestepping any dataloss issues. | ||||
Augie Fackler
|
r43246 | $ hg rm c | ||
$ hg ci -m 'remove c' | ||||
$ echo collision > c | ||||
Augie Fackler
|
r43247 | $ hg histedit e860deea161a | ||
Augie Fackler
|
r43246 | c: untracked file differs | ||
Augie Fackler
|
r43247 | abort: untracked files in working directory conflict with files in 055a42cdd887 | ||
Augie Fackler
|
r43246 | [255] | ||
Augie Fackler
|
r43247 | We should have detected the collision early enough we're not in a | ||
histedit state, and p1 is unchanged. | ||||
Augie Fackler
|
r43246 | |||
$ hg log -r 'p1()' -T'{node}\n' | ||||
1b0954ff00fccb15a37b679e4a35e9b01dfe685e | ||||
$ hg status --config ui.tweakdefaults=yes | ||||
? c | ||||
? e.orig | ||||
Mads Kiilerich
|
r17085 | $ cd .. | ||