git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] mergetools: Enable tortoisemerge to handle filenames with spaces with TortoiseGitMerge

From
SSSven Strickroth <sven.strickroth@tu-clausthal.de>
Date
Feb 1, 2013, 20:16 UTC
Message-ID
<510C229E.2050705@tu-clausthal.de>
In-Reply-To
<CAHGBnuNpHtfnD6D+sji6e1yp2x6iLxjAbawwO6USF2iWW17nuQ@mail.gmail.com>

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 to 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>
---
 mergetools/tortoisemerge | 14 +++++++++++---
 1 file 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
-- 
1.8.1.msysgit.1
Previous: Sven StrickrothNext: David Aguilar
Message 29 of 31 in “mergetools: Add tortoisegitmerge helper”
  1. mergetools: Add tortoisegitmerge helperSven Strickroth, Jan 20, 2013
  2. Junio C HamanoJan 21, 2013
  3. mergetools: Add tortoisegitmerge helperSven Strickroth, Jan 21, 2013
  4. mergetools: Add tortoisegitmerge helperSven Strickroth, Jan 21, 2013
  5. Sven StrickrothJan 24, 2013
  6. Junio C HamanoJan 24, 2013
  7. Sven StrickrothJan 24, 2013
  8. Junio C HamanoJan 24, 2013
  9. David AguilarJan 25, 2013
  10. Junio C HamanoJan 25, 2013
  11. David AguilarJan 25, 2013
  12. John KeepingJan 25, 2013
  13. mergetools: Enhance tortoisemerge to work withSven Strickroth, Jan 25, 2013
  14. David AguilarJan 25, 2013
  15. mergetools: Enhance tortoisemerge to work withSven Strickroth, Jan 25, 2013
  16. Junio C HamanoJan 25, 2013
  17. Sven StrickrothJan 26, 2013
  18. Sven StrickrothJan 26, 2013
  19. 1/2 mergetools: Added support for TortoiseGitMergeSven Strickroth, Jan 26, 2013
  20. 2/2 mergetools: Make tortoisemerge work withSven Strickroth, Jan 26, 2013
  21. David AguilarJan 26, 2013
  22. Sven StrickrothJan 27, 2013
  23. Junio C HamanoJan 27, 2013
  24. mergetools: Enable tortoisemerge to handle filenames withSven Strickroth, Feb 1, 2013
  25. Sebastian SchuberthFeb 1, 2013
  26. Sven StrickrothFeb 1, 2013
  27. Junio C HamanoFeb 1, 2013
  28. Sven StrickrothFeb 1, 2013
  29. Sven StrickrothFeb 1, 2013
  30. David AguilarFeb 2, 2013
  31. Junio C HamanoFeb 2, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.