[PATCH] git-gui: fix "Explore Working Copy" for Windows again
From: Markus Heidelberg <hidden>
Date: 2016-06-15 22:48:21
Subsystem:
the rest · Maintainer:
Linus Torvalds
It has already been fixed in commit 454efb47 (git-gui (Win): make "Explore Working Copy" more robust, 2009-04-01), but has been broken in commit 21985a11 (git-gui: handle non-standard worktree locations, 2010-01-23) by accidentally replacing too much with a new variable. The problem can be reproduced when starting git-gui from within a subdirectory. The solution is to convert the path name, explorer.exe is invoked with, to a platform native name. Signed-off-by: Markus Heidelberg <redacted> ---
quoted
quoted
Maybe _gitworktree should be normalized or nativenamified when it is set and then will work everywhere it is used for every platform?The only issue with that would be that GIT_DIR and GIT_WORK_TREE are (re)inizialized from _gitdir and _gitworktree, so it would not be safe if git on Windows works better with unix-style rather than native paths. If git on windows handles native paths fine, it should be no problem.Tcl internally uses unix type path separators but once you export this path to the operating system you may need to ensure it is a native path. Typically that means when calling [exec]. [open] is a tcl command and will deal with a path variable in either style. The Tcl exec man page has some notes on the compatibility issues.
So this should be the obvious solution. git-gui.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh
index 8996d2d..7184afa 100755
--- a/git-gui.sh
+++ b/git-gui.sh@@ -2101,7 +2101,7 @@ proc do_explore {} { # freedesktop.org-conforming system is our best shot set explorer "xdg-open" } - eval exec $explorer $_gitworktree & + eval exec $explorer [list [file nativename $_gitworktree]] & } set is_quitting 0
--
1.7.0.52.gb3f79