diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -1361,7 +1361,9 @@ extra_defaults.update(extra) extra = extra_defaults - if action: + if action == 'diff': + suffix = '.diff' + elif action: suffix = '.%s.hg.txt' % action else: suffix = extra['suffix'] diff --git a/tests/test-editor-filename.t b/tests/test-editor-filename.t --- a/tests/test-editor-filename.t +++ b/tests/test-editor-filename.t @@ -33,3 +33,31 @@ *.histedit.hg.txt (glob) abort: edit failed: editor.sh exited with status 1 [255] + +Verify that when performing an action that has the side-effect of creating an +editor for a diff, the file ends in .diff. + + $ echo 1 > one + $ echo 2 > two + $ hg add + adding one + adding two + $ hg commit --interactive --config ui.interactive=true --config ui.interface=text << EOF + > y + > e + > q + > EOF + diff --git a/one b/one + new file mode 100644 + examine changes to 'one'? [Ynesfdaq?] y + + @@ -0,0 +1,1 @@ + +1 + record change 1/2 to 'one'? [Ynesfdaq?] e + + *.diff (glob) + editor exited with exit code 1 + record change 1/2 to 'one'? [Ynesfdaq?] q + + abort: user quit + [255]