[PATCH] git-gui: fix "Explore Working Copy" for Windows again
- From
Markus Heidelberg <markus.heidelberg@web.de>
- Date
- Feb 25, 2010, 00:14 UTC
- Message-ID
- <201002250114.23322.markus.heidelberg@web.de>
- In-Reply-To
- <a5b261831002240412x30490e25wbec74cdbc1d0ebd2@mail.gmail.com>
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 <markus.heidelberg@web.de> ---
Show 14 quoted lines
> > > 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