Subject: Re: [PATCH v3] Allow the user to change the temporary file name for mergetool

From: Junio C Hamano <[email-masked]>
Date: Tue, 19 Aug 2014 11:01:59 -0700

Robin Rosenberg <[email-masked]> writes:

> Using the original filename suffix for the temporary input files to
> the merge tool confuses IDEs like Eclipse. This patch introduces
> a configurtion option, mergetool.tmpsuffix, which get appended to
> the temporary file name. That way the user can choose to use a
> suffix like ".tmp", which does not cause confusion.
>
> Signed-off-by: Robin Rosenberg <[email-masked]>
> ---
>  Documentation/config.txt        |  5 +++++
>  Documentation/git-mergetool.txt |  7 +++++++
>  git-mergetool.sh                | 10 ++++++----
>  3 files changed, 18 insertions(+), 4 deletions(-)

Thanks for a quick turn-around.

>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index c55c22a..0e15800 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -1778,6 +1778,11 @@ notes.displayRef::
>  	several times.  A warning will be issued for refs that do not
>  	exist, but a glob that does not match any refs is silently
>  	ignored.
> +
> +mergetool.tmpsuffix::
> +	A string to append the names of the temporary files mergetool
> +	creates in the worktree as input to a custom merge tool. The
> +	primary use is to avoid confusion in IDEs during merge.
>  +
>  This setting can be overridden with the `GIT_NOTES_DISPLAY_REF`
>  environment variable, which must be a colon separated list of refs or

I smell that the new paragraph is inserted at a wrong place.  What
does notes-display-ref environment have anything to do with this
variable?

Also, could you phrase this in a way to hint that the users are
likely to want to begin the value for this variable with a dot (or
some other special character)?  Your 'suffix like ".tmp"' in the
proposed log message does it very nicely [*1*], and I'd like to see the
same done for the end users who do not have access to our log
message but do have access to our documentation pages.

Same comment applies to the new paragraph in the documentation of
git-mergetool itself.

> diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
> index e846c2e..80a0526 100644
> --- a/Documentation/git-mergetool.txt
> +++ b/Documentation/git-mergetool.txt
> @@ -89,6 +89,13 @@ Setting the `mergetool.keepBackup` configuration variable to `false`
>  causes `git mergetool` to automatically remove the backup as files
>  are successfully merged.
>  
> +`git mergetool` may also create other temporary files for the
> +different versions involved in the merge. By default these files have
> +the same filename suffix as the file being merged. This may confuse
> +other tools in use during a long merge operation. The user can set
> +`mergetool.tmpsuffix` to be used as an extra suffix, which will be
> +appened to the temporary filename to lessen that problem.
> +

[Footnote]

*1* To anybody remotely intelligent (like me), it hints that a
temporary file would have a name like "hello.rbtmp" if it is set to
"tmp", to let them make a natural inference that they are better off
using something like ".tmp", "~tmp", "+tmp", etc.