changeset 34138:9c07cff039bc

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
author Phil Cohen <phillco@fb.com>
date Mon, 11 Sep 2017 13:03:27 -0700
parents c0ce60459d84
children b90e5b2a9c82
files mercurial/filemerge.py
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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: