threads / patch / 11122

patchOpen external merge tool with original file extensions in all three files

Subject: [PATCH] Open external merge tool with original file extensions in all three files

## tl;dr

3 messages between Dec 3, 2007 and Dec 3, 2007. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Pini Reznik· Dec 3, 2007, 15:31 UTC · lore

This required to be able to use syntax highlighting in meld during conflicts resolution. Before this change, two merged versions of file with a conflict were open with temporal extensions .LOCAL.$$ and REMOTE.$$ This way they were not recognized as a code files.

Signed-off-by: Pini Reznik <pinir@expand.com>
---
 git-mergetool.sh |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
Show changes to git-mergetool.sh +5 −4
diff --git a/git-mergetool.sh b/git-mergetool.sh
index 5587c5e..4c15d22 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.$$"
+    extension=`echo $path | awk -F \. '{print $NF}'`
+    BACKUP="$path.BACKUP.$$.${extension}"
+    LOCAL="$path.LOCAL.$$.${extension}"
+    REMOTE="$path.REMOTE.$$.${extension}"
+    BASE="$path.BASE.$$.${extension}"
 
     mv -- "$path" "$BACKUP"
     cp -- "$BACKUP" "$path"
-- 
1.5.3.5
Junio C Hamano· Dec 3, 2007, 18:17 UTC · re: Pini Reznik · lore

Re: [PATCH] Open external merge tool with original file extensions in all three files

Pini Reznik <pinir@expand.com> writes:
> This required to be able to use syntax highlighting in meld during
> conflicts resolution....
Show 5 quoted lines
> +    extension=`echo $path | awk -F \. '{print $NF}'`
> +    BACKUP="$path.BACKUP.$$.${extension}"
> +    LOCAL="$path.LOCAL.$$.${extension}"
> +    REMOTE="$path.REMOTE.$$.${extension}"
> +    BASE="$path.BASE.$$.${extension}"
I had to wonder what would happen in these cases:
 * path = "a/b/c/d"
 * path = "a/b.c/d"
I also think spawning awk for this is way overkill.
Junio C Hamano· Dec 3, 2007, 21:28 UTC · re: Junio C Hamano · lore

Re: [PATCH] Open external merge tool with original file extensions in all three files

Junio C Hamano <gitster@pobox.com> writes:
Show 17 quoted lines
> Pini Reznik <pinir@expand.com> writes:
>
>> This required to be able to use syntax highlighting in meld during
>> conflicts resolution....
>
>> +    extension=`echo $path | awk -F \. '{print $NF}'`
>> +    BACKUP="$path.BACKUP.$$.${extension}"
>> +    LOCAL="$path.LOCAL.$$.${extension}"
>> +    REMOTE="$path.REMOTE.$$.${extension}"
>> +    BASE="$path.BASE.$$.${extension}"
>
> I had to wonder what would happen in these cases:
>
>  * path = "a/b/c/d"
>  * path = "a/b.c/d"
>
> I also think spawning awk for this is way overkill.
IOW, I would probably write the above like this:
	ext="$$$(expr "$path" : '.*\(\.[^/]*\)$')"
        BACKUP="$path.BACKUP.$ext"
        LOCAL="$path.LOCAL.$ext"
        REMOTE="$path.REMOTE.$ext"
        BASE="$path.BASE.$ext"

← back to recent threads