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

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help