mirror of
https://github.com/git-for-windows/git.git
synced 2026-06-17 07:21:10 -05:00
git-gui: simplify [is_bare] to report if a worktree is known
git-gui includes proc is_bare, used in several places to make decisions on whether a worktree exists, but also in discovery to tell if a worktree can be supported. But, is_bare is out of date with regard to multiple worktrees, safe repository guards, and possibly other relevant features known to git rev-parse. Also, is_bare caches its result on the first call, so is not useful if a later step in the discovery process finds a worktree. So, simplify is_bare to report whether git-gui has a worktree or is working only from a repository. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
This commit is contained in:
committed by
Johannes Sixt
parent
80b7207e68
commit
d0e9b4959b
25
git-gui.sh
25
git-gui.sh
@@ -372,7 +372,6 @@ if {[tk windowingsystem] eq "aqua"} {
|
||||
set _appname {Git Gui}
|
||||
set _gitdir {}
|
||||
set _gitworktree {}
|
||||
set _isbare {}
|
||||
set _githtmldir {}
|
||||
set _prefix {}
|
||||
set _reponame {}
|
||||
@@ -524,29 +523,7 @@ proc get_config {name} {
|
||||
}
|
||||
|
||||
proc is_bare {} {
|
||||
global _isbare
|
||||
global _gitdir
|
||||
global _gitworktree
|
||||
|
||||
if {$_isbare eq {}} {
|
||||
if {[catch {
|
||||
set _bare [git rev-parse --is-bare-repository]
|
||||
switch -- $_bare {
|
||||
true { set _isbare 1 }
|
||||
false { set _isbare 0}
|
||||
default { throw }
|
||||
}
|
||||
}]} {
|
||||
if {[is_config_true core.bare]
|
||||
|| ($_gitworktree eq {}
|
||||
&& [lindex [file split $_gitdir] end] ne {.git})} {
|
||||
set _isbare 1
|
||||
} else {
|
||||
set _isbare 0
|
||||
}
|
||||
}
|
||||
}
|
||||
return $_isbare
|
||||
return [expr {$::_gitworktree eq {}}]
|
||||
}
|
||||
|
||||
######################################################################
|
||||
|
||||
Reference in New Issue
Block a user