mercurial/merge.py
changeset 26986 1ee5e48f09d4
parent 26975 6618dfd3ea1c
child 26987 416b2b7d3068
--- a/mercurial/merge.py	Tue Nov 17 14:10:12 2015 -0800
+++ b/mercurial/merge.py	Tue Nov 17 14:11:52 2015 -0800
@@ -110,6 +110,7 @@
             del self.otherctx
         self._readmergedriver = None
         self._mdstate = 's'
+        unsupported = set()
         records = self._readrecords()
         for rtype, record in records:
             if rtype == 'L':
@@ -129,10 +130,12 @@
                 bits = record.split('\0')
                 self._state[bits[0]] = bits[1:]
             elif not rtype.islower():
-                raise error.Abort(_('unsupported merge state record: %s')
-                                   % rtype)
+                unsupported.add(rtype)
         self._dirty = False
 
+        if unsupported:
+            raise error.UnsupportedMergeRecords(unsupported)
+
     def _readrecords(self):
         """Read merge state from disk and return a list of record (TYPE, data)