# HG changeset patch # User Siddharth Agarwal # Date 1448391421 28800 # Node ID 4dc5951df1e4c813782ccd534f0d9791893b293f # Parent 77d760ba8dcd59ddbc83ba9a12fd152a1fb9208e filemerge: in ':fail' tool, write out other side if local side is deleted We do this because we don't want to modify the dirstate for failures, and don't just want to leave the file missing from disk. Plus it's more useful for the user if the changed side is written out -- it is easier to delete a file than to get it back via hg revert. diff -r 77d760ba8dcd -r 4dc5951df1e4 mercurial/filemerge.py --- a/mercurial/filemerge.py Mon Nov 23 18:03:25 2015 -0800 +++ b/mercurial/filemerge.py Tue Nov 24 10:57:01 2015 -0800 @@ -285,6 +285,9 @@ Rather than attempting to merge files that were modified on both branches, it marks them as unresolved. The resolve command must be used to resolve these conflicts.""" + # for change/delete conflicts write out the changed version, then fail + if fcd.isabsent(): + repo.wwrite(fcd.path(), fco.data(), fco.flags()) return 1, False def _premerge(repo, fcd, fco, fca, toolconf, files, labels=None):