# [PATCH] Open external merge tool with original file extensions for all three files

2 messages from 2007-12-05 to 2007-12-05. Participants: Pini Reznik, Junio C Hamano.
Thread: https://gitlist.dev/t/11138

## Pini Reznik, 2007-12-05 07:19

Subject: [PATCH] Open external merge tool with original file extensions for all three files
Message-ID: <1196839153-31084-1-git-send-email-pinir@expand.com>
URL: https://gitlist.dev/e/1196839153-31084-1-git-send-email-pinir%40expand.com

```
Before this fix conflicted files were open in external merge tool with temporal extensions like REMOTE.$$ and LOCAL.$$.
This way meld was unable to recognize these files and syntax highlighting feature was unusable.


Signed-off-by: Pini Reznik <pinir@expand.com>
---
 git-mergetool.sh |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index 5587c5e..2f31fa2 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -152,10 +152,11 @@ merge_file () {
 	exit 1
     fi
 
-    BACKUP="$path.BACKUP.$$"
-    LOCAL="$path.LOCAL.$$"
-    REMOTE="$path.REMOTE.$$"
-    BASE="$path.BASE.$$"
+    ext="$$$(expr "$path" : '.*\(\.[^/]*\)$')"
+    BACKUP="$path.BACKUP.$ext"
+    LOCAL="$path.LOCAL.$ext"
+    REMOTE="$path.REMOTE.$ext"
+    BASE="$path.BASE.$ext"
 
     mv -- "$path" "$BACKUP"
     cp -- "$BACKUP" "$path"
-- 
1.5.3.5

```

## Junio C Hamano, 2007-12-05 07:24

Subject: Re: [PATCH] Open external merge tool with original file extensions for all three files
Message-ID: <7vve7dzjro.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vve7dzjro.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <1196839153-31084-1-git-send-email-pinir@expand.com>

```
Pini Reznik <pinir@expand.com> writes:

> Before this fix conflicted files were open in external merge tool with temporal extensions like REMOTE.$$ and LOCAL.$$.
> This way meld was unable to recognize these files and syntax highlighting feature was unusable.
>
>
> Signed-off-by: Pini Reznik <pinir@expand.com>

I have to wonder if it is fashionable to use overlooooong lines on this
list today...  Please linewrap commit log message.

Ted, you added meld from the beginning to git-mergetool.  Does the patch
look good?

> ---
>  git-mergetool.sh |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index 5587c5e..2f31fa2 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
> @@ -152,10 +152,11 @@ merge_file () {
>  	exit 1
>      fi
>  
> -    BACKUP="$path.BACKUP.$$"
> -    LOCAL="$path.LOCAL.$$"
> -    REMOTE="$path.REMOTE.$$"
> -    BASE="$path.BASE.$$"
> +    ext="$$$(expr "$path" : '.*\(\.[^/]*\)$')"
> +    BACKUP="$path.BACKUP.$ext"
> +    LOCAL="$path.LOCAL.$ext"
> +    REMOTE="$path.REMOTE.$ext"
> +    BASE="$path.BASE.$ext"

I realize '.*\(\.[^./]*\)$' might have been better, as the above
expression as written will slurp ".b.c" as ext from "foo.b.c", but
probably for "merger knows the file type with file extension" purpose,
it does not make a difference.

```
