comparison 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
comparison
equal deleted inserted replaced
27026:c93b44b79359 27027:a01ecbcfaf84
66 merging common 66 merging common
67 warning: conflicts while merging common! (edit, then use 'hg resolve --mark') 67 warning: conflicts while merging common! (edit, then use 'hg resolve --mark')
68 unresolved conflicts (see hg resolve, then hg rebase --continue) 68 unresolved conflicts (see hg resolve, then hg rebase --continue)
69 [1] 69 [1]
70 70
71 Abort: 71 Insert unsupported advisory merge record:
72
73 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
74 $ hg debugmergestate
75 * version 2 records
76 local: 3e046f2ecedb793b97ed32108086edd1a162f8bc
77 other: 46f0b057b5c061d276b91491c22151f78698abd2
78 unrecognized entry: x advisory record
79 file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1)
80 local path: common (flags "")
81 ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6)
82 other path: common (node 2f6411de53677f6f1048fef5bf888d67a342e0a5)
83 $ hg resolve -l
84 U common
85
86 Insert unsupported mandatory merge record:
87
88 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
89 $ hg debugmergestate
90 * version 2 records
91 local: 3e046f2ecedb793b97ed32108086edd1a162f8bc
92 other: 46f0b057b5c061d276b91491c22151f78698abd2
93 file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1)
94 local path: common (flags "")
95 ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6)
96 other path: common (node 2f6411de53677f6f1048fef5bf888d67a342e0a5)
97 unrecognized entry: X mandatory record
98 $ hg resolve -l
99 abort: unsupported merge state records: X
100 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
101 [255]
102 $ hg resolve -ma
103 abort: unsupported merge state records: X
104 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
105 [255]
106
107 Abort (should clear out unsupported merge state):
72 108
73 $ hg rebase --abort 109 $ hg rebase --abort
74 saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg (glob) 110 saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg (glob)
75 rebase aborted 111 rebase aborted
112 $ hg debugmergestate
113 no merge state found
76 114
77 $ hg tglog 115 $ hg tglog
78 @ 4:draft 'L2' 116 @ 4:draft 'L2'
79 | 117 |
80 o 3:draft 'L1' 118 o 3:draft 'L1'