Thread (5 messages) flat view 5 messages, 3 authors, 2016-06-15

Re: [PATCH] mergetools: Enhance tortoisemerge to work with

From: David Aguilar <hidden>
Date: 2016-06-15 22:55:53

Possibly related (same subject, not in this thread)

On Fri, Jan 25, 2013 at 1:06 AM, Sven Strickroth
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
TortoiseGitMerge and filenames with spaces

- The TortoiseGit team renamed TortoiseMerge.exe to TortoiseGitMerge.exe
  (starting with 1.8.0) in order to make clear that this one has special
  support for git, (uses spaces as cli parameter key-value separators)
  and prevent confusion with the TortoiseSVN TortoiseMerge version.
- The tortoisemerge mergetool does not work with filenames which have
  a space in it. Fixing this required changes in git and also in
  TortoiseGitMerge; see https://github.com/msysgit/msysgit/issues/57.

Signed-off-by: Sven Strickroth <redacted>
Reported-by: Sebastian Schuberth <redacted>
---
 mergetools/tortoisemerge | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/mergetools/tortoisemerge b/mergetools/tortoisemerge
index ed7db49..9890737 100644
--- a/mergetools/tortoisemerge
+++ b/mergetools/tortoisemerge
@@ -6,12 +6,28 @@ merge_cmd () {
        if $base_present
        then
                touch "$BACKUP"
-               "$merge_tool_path" \
-                       -base:"$BASE" -mine:"$LOCAL" \
-                       -theirs:"$REMOTE" -merged:"$MERGED"
+               if test "$merge_tool_path" == "tortoisegitmerge"
I like the approach this is taking.  Thank you.
I have one small note:

I think this should use "=" instead of "==" here.

It might also make sense to wrap a basename call around it
so that users can set their own mergetool.tortoisemerge.path

basename="$(basename "$merge_tool_path" .exe)"
if test "$basename" = "tortoisegitmerge"
...

+               then
+                       "$merge_tool_path" \
+                               -base "$BASE" -mine "$LOCAL" \
+                               -theirs "$REMOTE" -merged "$MERGED"
+               else
+                       "$merge_tool_path" \
+                               -base:"$BASE" -mine:"$LOCAL" \
+                               -theirs:"$REMOTE" -merged:"$MERGED"
+               fi
                check_unchanged
        else
-               echo "TortoiseMerge cannot be used without a base" 1>&2
+               echo "$merge_tool_path cannot be used without a base" 1>&2
                return 1
        fi
 }
+
+translate_merge_tool_path() {
+       if type tortoisegitmerge >/dev/null 2>/dev/null
+       then
+               echo tortoisegitmerge
+       else
+               echo tortoisemerge
+       fi
+}
--
Best regards,
 Sven Strickroth
 PGP key id F5A9D4C4 @ any key-server
-- 
David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help