git-gui: work from the .git dir
When git-gui is run from a .git dir, _gitdir would be set to "." by rev-parse, something that confuses the worktree detection. Fix by expanding the value of _gitdir to pwd in this special case. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
390425bdef
commit
87cd09f43e
10
git-gui.sh
10
git-gui.sh
@ -1074,6 +1074,8 @@ if {[catch {
|
||||
set _prefix {}
|
||||
}]
|
||||
&& [catch {
|
||||
# beware that from the .git dir this sets _gitdir to .
|
||||
# and _prefix to the empty string
|
||||
set _gitdir [git rev-parse --git-dir]
|
||||
set _prefix [git rev-parse --show-prefix]
|
||||
} err]} {
|
||||
@ -1082,6 +1084,14 @@ if {[catch {
|
||||
choose_repository::pick
|
||||
set picked 1
|
||||
}
|
||||
|
||||
# we expand the _gitdir when it's just a single dot (i.e. when we're being
|
||||
# run from the .git dir itself) lest the routines to find the worktree
|
||||
# get confused
|
||||
if {$_gitdir eq "."} {
|
||||
set _gitdir [pwd]
|
||||
}
|
||||
|
||||
if {![file isdirectory $_gitdir] && [is_Cygwin]} {
|
||||
catch {set _gitdir [exec cygpath --windows $_gitdir]}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user