summaryrefslogtreecommitdiff
path: root/mergetools
diff options
context:
space:
mode:
authorSven Strickroth <sven.strickroth@tu-clausthal.de>2013-02-01 20:16:30 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-02-02 02:06:03 (GMT)
commit81ed7b9581f7eafb334824264abb492d85a5ffb8 (patch)
tree2e2476a7211afad3e4301b89e244b48e77dbbece /mergetools
parent8bf671946da23b39b7b6b18fe99cfa011ec21a11 (diff)
downloadgit-81ed7b9581f7eafb334824264abb492d85a5ffb8.zip
git-81ed7b9581f7eafb334824264abb492d85a5ffb8.tar.gz
git-81ed7b9581f7eafb334824264abb492d85a5ffb8.tar.bz2
mergetools: teach tortoisemerge to handle filenames with SP correctly
TortoiseGitMerge, unlike TortoiseMerge, can be told to handle paths with spaces in them by using -option "$FILE" (not -option:"$FILE", which does not work for such paths) syntax. This change was necessary because of MSYS path mangling [1], the ":" after the "base" etc. arguments to TortoiseMerge caused the whole argument instead of just the file name to be quoted in case of file names with spaces. So TortoiseMerge was passed "-base:new file.txt" instead of -base:"new file.txt" (including the quotes). To work around this, TortoiseGitMerge does not require the ":" after the arguments anymore which fixes handling file names with spaces [2] (as written above). [1] http://www.mingw.org/wiki/Posix_path_conversion [2] https://github.com/msysgit/msysgit/issues/57 Signed-off-by: Sven Strickroth <email@cs-ware.de> Reported-by: Sebastian Schuberth <sschuberth@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mergetools')
-rw-r--r--mergetools/tortoisemerge14
1 files changed, 11 insertions, 3 deletions
diff --git a/mergetools/tortoisemerge b/mergetools/tortoisemerge
index 8476afa..3b89f1c 100644
--- a/mergetools/tortoisemerge
+++ b/mergetools/tortoisemerge
@@ -6,9 +6,17 @@ merge_cmd () {
if $base_present
then
touch "$BACKUP"
- "$merge_tool_path" \
- -base:"$BASE" -mine:"$LOCAL" \
- -theirs:"$REMOTE" -merged:"$MERGED"
+ 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