diff -r f618b6aa8cdd -r 6ff5534c8afc mercurial/merge.py --- a/mercurial/merge.py Wed Sep 30 21:42:52 2015 -0700 +++ b/mercurial/merge.py Mon Sep 28 18:34:06 2015 -0700 @@ -61,6 +61,8 @@ L: the node of the "local" part of the merge (hexified version) O: the node of the "other" part of the merge (hexified version) F: a file to be merged entry + D: a file that the external merge driver will merge internally + (experimental) m: the external merge driver defined for this merge plus its run state (experimental) @@ -125,7 +127,7 @@ _("merge driver changed since merge started"), hint=_("revert merge driver change or abort merge")) self._mdstate = mdstate - elif rtype == 'F': + elif rtype in 'FD': bits = record.split('\0') self._state[bits[0]] = bits[1:] elif not rtype.islower(): @@ -254,7 +256,10 @@ records.append(('m', '\0'.join([ self.mergedriver, self._mdstate]))) for d, v in self._state.iteritems(): - records.append(('F', '\0'.join([d] + v))) + if v[0] == 'd': + records.append(('D', '\0'.join([d] + v))) + else: + records.append(('F', '\0'.join([d] + v))) self._writerecords(records) self._dirty = False