Mercurial > hg-stable
changeset 46437:63dfaca9087f
filemerge: add a hacktastic version of internal:merge3 for merge diffs
This is a version of merge3 that always reports success, so that
conflict markers get preserved without us having to implement conflict
storage for in-memory merge. Credit to martinvonz for the idea. The
only planned consumer of this "merge tool" is my upcoming merge-diffs
functionality, though I suspect it could be useful in other ways.
Differential Revision: https://phab.mercurial-scm.org/D8515
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 11 May 2020 18:45:45 -0400 |
parents | 24a32dea6955 |
children | 135056e8b5a8 |
files | mercurial/filemerge.py |
diffstat | 1 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/filemerge.py Thu May 28 17:31:41 2020 -0400 +++ b/mercurial/filemerge.py Mon May 11 18:45:45 2020 -0400 @@ -538,6 +538,25 @@ @internaltool( + b'merge3-lie-about-conflicts', + fullmerge, + b'', + precheck=_mergecheck, +) +def _imerge3alwaysgood(*args, **kwargs): + # Like merge3, but record conflicts as resolved with markers in place. + # + # This is used for `hg diff --merge` to show the differences between + # the auto-merge state and the committed merge state. It may be + # useful for other things. + b1, junk, b2 = _imerge3(*args, **kwargs) + # TODO is this right? I'm not sure what these return values mean, + # but as far as I can tell this will indicate to callers tha the + # merge succeeded. + return b1, False, b2 + + +@internaltool( b'mergediff', fullmerge, _(