# HG changeset patch
# User Siddharth Agarwal <sid0@fb.com>
# Date 1447487885 28800
#      Fri Nov 13 23:58:05 2015 -0800
# Node ID 1bde66b89bb2863ef60f1a736866878ef795c83e
# Parent  d7517deedf861649b99b70c65d3c8bb623e27886
filemerge._mergecheck: add check for change/delete conflicts

Merge tools that perform an actual 3-way merge can't handle change/delete
conflicts. This adds a check for that.

diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -328,6 +328,10 @@
         repo.ui.warn(_('warning: internal %s cannot merge symlinks '
                        'for %s\n') % (tool, fcd.path()))
         return False
+    if fcd.isabsent() or fco.isabsent():
+        repo.ui.warn(_('warning: internal %s cannot merge change/delete '
+                       'conflict for %s\n') % (tool, fcd.path()))
+        return False
     return True
 
 def _merge(repo, mynode, orig, fcd, fco, fca, toolconf, files, labels, mode):