diff mercurial/filemerge.py @ 30547:c2154979409d

merge: use original file extension for temporary files Some merge tools (like Araxis?) can pick merge mode based on the file extension. That didn't work well when temporary files were given random suffixes. It seems to work better when the random part is before the extension. As usual, when using $output, $local will have the .orig extension. That could perhaps be the subject of another change another day.
author Mads Kiilerich <madski@unity3d.com>
date Wed, 23 Nov 2016 23:47:38 +0100
parents ce3a133f71b3
children f1c9fafcbf46
line wrap: on
line diff
--- a/mercurial/filemerge.py	Sat Nov 26 09:14:41 2016 -0800
+++ b/mercurial/filemerge.py	Wed Nov 23 23:47:38 2016 +0100
@@ -577,8 +577,9 @@
     a boolean indicating whether the file was deleted from disk."""
 
     def temp(prefix, ctx):
-        pre = "%s~%s." % (os.path.basename(ctx.path()), prefix)
-        (fd, name) = tempfile.mkstemp(prefix=pre)
+        fullbase, ext = os.path.splitext(ctx.path())
+        pre = "%s~%s." % (os.path.basename(fullbase), prefix)
+        (fd, name) = tempfile.mkstemp(prefix=pre, suffix=ext)
         data = repo.wwritedata(ctx.path(), ctx.data())
         f = os.fdopen(fd, "wb")
         f.write(data)