mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
4a78a436f9
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.
26 lines
686 B
Python
26 lines
686 B
Python
# Extension to write out fake unsupported records into the merge state
|
|
#
|
|
#
|
|
|
|
from __future__ import absolute_import
|
|
|
|
from mercurial import (
|
|
cmdutil,
|
|
merge,
|
|
)
|
|
|
|
cmdtable = {}
|
|
command = cmdutil.command(cmdtable)
|
|
|
|
@command('fakemergerecord',
|
|
[('X', 'mandatory', None, 'add a fake mandatory record'),
|
|
('x', 'advisory', None, 'add a fake advisory record')], '')
|
|
def fakemergerecord(ui, repo, *pats, **opts):
|
|
ms = merge.mergestate.read(repo)
|
|
records = ms._makerecords()
|
|
if opts.get('mandatory'):
|
|
records.append(('X', 'mandatory record'))
|
|
if opts.get('advisory'):
|
|
records.append(('x', 'advisory record'))
|
|
ms._writerecords(records)
|