[PATCH v2 05/11] git-gui: simplify [is_bare] to report if a worktree is known
- From
Mark Levedahl <mlevedahl@gmail.com>
- Date
- May 20, 2026, 20:24 UTC
- Message-ID
- <20260520202411.108764-6-mlevedahl@gmail.com>
- In-Reply-To
- <20260520202411.108764-1-mlevedahl@gmail.com>
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> --- git-gui.sh | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh index c61a6cbd8f..936c309e59 100755 --- a/git-gui.sh +++ b/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 {}}] } ######################################################################
-- 2.54.0.99.14