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

Re: [GIT GUI PATCH] git-gui: fix open explorer window on Windows 7

From: Markus Heidelberg <hidden>
Date: 2016-06-15 22:48:20

Heiko Voigt, 2010-02-23 23:52:
quoted hunk ↗ jump to hunk
It seems that Windows 7's explorer is not capable to cope with paths
that contain forward slashes as path seperator. We thus substitute slash
with the platforms native backslash.

Signed-off-by: Heiko Voigt <redacted>
---
 git-gui/git-gui.sh |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 9a9525d..ae45a12 100644
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -2112,15 +2112,17 @@ proc do_git_gui {} {
 proc do_explore {} {
 	global _gitworktree
 	set explorer {}
+	set path $_gitworktree
 	if {[is_Cygwin] || [is_Windows]} {
 		set explorer "explorer.exe"
+		set path [list [string map {/ \\} $path]]
I remember having had the same problem, which I fixed with [file
nativename]. See commit 454efb47b (git-gui (Win): make "Explore Working
Copy" more robust). But that was on XP, shouldn't be Windows 7 specific.
So why does it fail now again, although I had fixed it? ...
 	} elseif {[is_MacOSX]} {
 		set explorer "open"
 	} else {
 		# freedesktop.org-conforming system is our best shot
 		set explorer "xdg-open"
 	}
-	eval exec $explorer $_gitworktree &
+	eval exec $explorer $path &
Ah, this doesn't look like what it looked like back then. Commit
21985a113 (git-gui: handle non-standard worktree locations) changed it,
removing the [file nativename]. I don't know if this was by accident,
but there is another place, where it was changed in a different manner:

Compare

-       eval exec $explorer [list [file nativename [file dirname [gitdir]]]] &
+       eval exec $explorer $_gitworktree &

with

-wm title . "[appname] ([reponame]) [file normalize [file dirname [gitdir]]]"
+wm title . "[appname] ([reponame]) [file normalize $_gitworktree]"

Maybe _gitworktree should be normalized or nativenamified when it is set
and then will work everywhere it is used for every platform?

Markus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help