Mercurial > hg
diff tests/test-rebase-abort.t @ 27027:a01ecbcfaf84
mergestate: handle additional record types specially
This works around a bug in older Mercurial versions' handling of the v2 merge
state.
We also add a bunch of tests that make sure that
(1) we correctly abort when the merge state has an unsupported record type
(2) aborting the merge, rebase or histedit continues to work and clears out the
merge state.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Wed, 18 Nov 2015 15:46:45 -0800 |
parents | e9b3d523f2e6 |
children | a1d4ca0c8483 61f4d59e9a0b |
line wrap: on
line diff
--- a/tests/test-rebase-abort.t Wed Nov 18 23:42:32 2015 -0800 +++ b/tests/test-rebase-abort.t Wed Nov 18 15:46:45 2015 -0800 @@ -68,11 +68,49 @@ unresolved conflicts (see hg resolve, then hg rebase --continue) [1] -Abort: +Insert unsupported advisory merge record: + + $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x + $ hg debugmergestate + * version 2 records + local: 3e046f2ecedb793b97ed32108086edd1a162f8bc + other: 46f0b057b5c061d276b91491c22151f78698abd2 + unrecognized entry: x advisory record + file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1) + local path: common (flags "") + ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6) + other path: common (node 2f6411de53677f6f1048fef5bf888d67a342e0a5) + $ hg resolve -l + U common + +Insert unsupported mandatory merge record: + + $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X + $ hg debugmergestate + * version 2 records + local: 3e046f2ecedb793b97ed32108086edd1a162f8bc + other: 46f0b057b5c061d276b91491c22151f78698abd2 + file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1) + local path: common (flags "") + ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6) + other path: common (node 2f6411de53677f6f1048fef5bf888d67a342e0a5) + 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 (should clear out unsupported merge state): $ hg rebase --abort saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg (glob) rebase aborted + $ hg debugmergestate + no merge state found $ hg tglog @ 4:draft 'L2'