diff tests/fakemergerecord.py @ 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
children b303b3817d0e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/fakemergerecord.py	Wed Nov 18 15:46:45 2015 -0800
@@ -0,0 +1,25 @@
+# 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)