Browse Source

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
Giuseppe Bilotta 15 years ago committed by Shawn O. Pearce
parent
commit
87cd09f43e
  1. 10
      git-gui.sh

10
git-gui.sh

@ -1074,6 +1074,8 @@ if {[catch { @@ -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 { @@ -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…
Cancel
Save