##// END OF EJS Templates
tests: add tests of debugmergestate with unresolved/resolved path conflicts...
tests: add tests of debugmergestate with unresolved/resolved path conflicts I'm about to change `hg debugmergestate` and it broke on these "pu" and "pr" records on my first attempt (D8113), so let's add test coverage. Differential Revision: https://phab.mercurial-scm.org/D8119

File last commit:

r44841:088ab52a default
r44879:382f4f09 default
Show More
test-histedit-non-commute-abort.t
187 lines | 5.1 KiB | text/troff | Tads3Lexer
/ tests / test-histedit-non-commute-abort.t
Mads Kiilerich
tests: convert histedit tests to .t...
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
histedit-test: generalise --commands "-" usage...
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
histedit: replaces patching logic by merges...
r17647 merging e
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
timeless
histedit: list action when intervention is required
r27629 Fix up the change (pick e860deea161a)
(hg histedit --continue to resume)
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 insert unsupported advisory merge record
$ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
$ hg debugmergestate
* version 2 records
local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758
other: e860deea161a2f77de56603b340ebbb4536308ae
Simon Farnsworth
merge: save merge part labels for later reuse...
r28634 labels:
local: local
other: histedit
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 unrecognized entry: x advisory record
Durham Goode
merge: add file ancestor linknode to mergestate...
r28011 file extras: e (ancestorlinknode = 0000000000000000000000000000000000000000)
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f)
local path: e (flags "")
Siddharth Agarwal
debugmergestate: print out null nodes as 'null'...
r27134 ancestor path: e (node null)
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 other path: e (node 6b67ccefd5ce6de77e7ead4f5292843a0255329f)
$ hg resolve -l
U e
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 insert unsupported mandatory merge record
$ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
$ hg debugmergestate
* version 2 records
local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758
other: e860deea161a2f77de56603b340ebbb4536308ae
Simon Farnsworth
merge: save merge part labels for later reuse...
r28634 labels:
local: local
other: histedit
Durham Goode
merge: add file ancestor linknode to mergestate...
r28011 file extras: e (ancestorlinknode = 0000000000000000000000000000000000000000)
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f)
local path: e (flags "")
Siddharth Agarwal
debugmergestate: print out null nodes as 'null'...
r27134 ancestor path: e (node null)
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 other path: e (node 6b67ccefd5ce6de77e7ead4f5292843a0255329f)
unrecognized entry: X mandatory record
$ 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
tests: convert histedit tests to .t...
r17085 $ hg histedit --abort 2>&1 | fixbundle
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Siddharth Agarwal
mergestate: handle additional record types specially...
r27027 $ hg debugmergestate
no merge state found
Mads Kiilerich
tests: convert histedit tests to .t...
r17085
log after abort
Pierre-Yves David
histedit: replaces patching logic by merges...
r17647 $ hg resolve -l
Mads Kiilerich
tests: convert histedit tests to .t...
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
histedit: sniff-test for untracked file conflicts before prompting for rules...
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
histedit: demonstrate breakage when `update` to a revision breaks...
r43246 $ hg rm c
$ hg ci -m 'remove c'
$ echo collision > c
Augie Fackler
histedit: sniff-test for untracked file conflicts before prompting for rules...
r43247 $ hg histedit e860deea161a
Augie Fackler
histedit: demonstrate breakage when `update` to a revision breaks...
r43246 c: untracked file differs
Augie Fackler
histedit: sniff-test for untracked file conflicts before prompting for rules...
r43247 abort: untracked files in working directory conflict with files in 055a42cdd887
Augie Fackler
histedit: demonstrate breakage when `update` to a revision breaks...
r43246 [255]
Augie Fackler
histedit: sniff-test for untracked file conflicts before prompting for rules...
r43247 We should have detected the collision early enough we're not in a
histedit state, and p1 is unchanged.
Augie Fackler
histedit: demonstrate breakage when `update` to a revision breaks...
r43246
$ hg log -r 'p1()' -T'{node}\n'
1b0954ff00fccb15a37b679e4a35e9b01dfe685e
$ hg status --config ui.tweakdefaults=yes
? c
? e.orig
Mads Kiilerich
tests: convert histedit tests to .t...
r17085 $ cd ..