@@ -221,10 +221,25 @@ def _imerge(repo, mynode, orig, fcd, fco
r = simplemerge.simplemerge(ui, a, b, c, label=labels)
return True, r
return False, 0
+@internaltool('merge3', True,
+ _("merging %s incomplete! "
+ "(edit conflicts, then use 'hg resolve --mark')\n"))
+def _imerge3(repo, mynode, orig, fcd, fco, fca, toolconf, files, labels=None):
+ """
+ Uses the internal non-interactive simple merge algorithm for merging
+ files. It will fail if there are any conflicts and leave markers in
+ the partially merged file. Marker will have three sections, one from each
+ side of the merge and one for the base content."""
+ if not labels:
+ labels = _defaultconflictlabels
+ if len(labels) < 3:
+ labels.append('base')
+ return _imerge(repo, mynode, orig, fcd, fco, fca, toolconf, files, labels)
+
@internaltool('tagmerge', True,
_("automatic tag merging of %s failed! "
"(use 'hg resolve --tool internal:merge' or another merge "
"tool of your choice)\n"))
def _itagmerge(repo, mynode, orig, fcd, fco, fca, toolconf, files, labels=None):
@@ -196,5 +196,39 @@ Verify basic conflict markers
3
4
5
>>>>>>> other
Hop we are done.
+
+internal:merge3
+
+ $ hg up -q --clean .
+
+ $ hg merge 1 --tool internal:merge3
+ merging a
+ warning: conflicts during merge.
+ merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
+ 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+ use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
+ [1]
+ $ cat a
+ Small Mathematical Series.
+ <<<<<<< local
+ 1
+ 2
+ 3
+ 6
+ 8
+ ||||||| base
+ One
+ Two
+ Three
+ Four
+ Five
+ =======
+ 1
+ 2
+ 3
+ 4
+ 5
+ >>>>>>> other
+ Hop we are done.