filemerge: flush if using deferred writes when running a merge tool
authorPhil Cohen <phillco@fb.com>
Mon, 11 Sep 2017 13:03:27 -0700
changeset 34138 9c07cff039bc
parent 34137 c0ce60459d84
child 34139 b90e5b2a9c82
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
mercurial/filemerge.py
--- 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: