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>maint
parent
390425bdef
commit
87cd09f43e
10
git-gui.sh
10
git-gui.sh
|
@ -1074,6 +1074,8 @@ if {[catch {
|
||||||
set _prefix {}
|
set _prefix {}
|
||||||
}]
|
}]
|
||||||
&& [catch {
|
&& [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 _gitdir [git rev-parse --git-dir]
|
||||||
set _prefix [git rev-parse --show-prefix]
|
set _prefix [git rev-parse --show-prefix]
|
||||||
} err]} {
|
} err]} {
|
||||||
|
@ -1082,6 +1084,14 @@ if {[catch {
|
||||||
choose_repository::pick
|
choose_repository::pick
|
||||||
set picked 1
|
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]} {
|
if {![file isdirectory $_gitdir] && [is_Cygwin]} {
|
||||||
catch {set _gitdir [exec cygpath --windows $_gitdir]}
|
catch {set _gitdir [exec cygpath --windows $_gitdir]}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue