filemerge: flush if using deferred writes when running a merge tool
Since merge tools might read from the filesystem, we need to write out our
deferred writes here.
No-ops if not using deferred writes.
Differential Revision: https://phab.mercurial-scm.org/D627
--- a/mercurial/filemerge.py Mon Sep 11 13:03:27 2017 -0700
+++ b/mercurial/filemerge.py Mon Sep 11 13:03:27 2017 -0700
@@ -666,6 +666,11 @@
onfailure = _("merging %s failed!\n")
precheck = None
+ # If using deferred writes, must flush any deferred contents if running
+ # an external merge tool since it has arbitrary access to the working
+ # copy.
+ wctx.flushall()
+
toolconf = tool, toolpath, binary, symlink
if mergetype == nomerge: