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 <em...@cs-ware.de>
Reported-by: Sebastian Schuberth <sschube...@gmail.com>
---
 mergetools/tortoisemerge | 51 ++++++++++++++++++++++++++++++++----------------
 1 file changed, 34 insertions(+), 17 deletions(-)

diff --git a/mergetools/tortoisemerge b/mergetools/tortoisemerge
index ed7db49..8ee99a5 100644
--- a/mergetools/tortoisemerge
+++ b/mergetools/tortoisemerge
@@ -1,17 +1,34 @@
-can_diff () {
-       return 1
-}
-
-merge_cmd () {
-       if $base_present
-       then
-               touch "$BACKUP"
-               "$merge_tool_path" \
-                       -base:"$BASE" -mine:"$LOCAL" \
-                       -theirs:"$REMOTE" -merged:"$MERGED"
-               check_unchanged
-       else
-               echo "TortoiseMerge cannot be used without a base" 1>&2
-               return 1
-       fi
-}
+can_diff () {
+       return 1
+}
+
+merge_cmd () {
+       if $base_present
+       then
+               touch "$BACKUP"
+               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 "$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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to