]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-gui: use git-branch --show-current
authorMark Levedahl <mlevedahl@gmail.com>
Mon, 12 Feb 2024 19:42:05 +0000 (14:42 -0500)
committerMark Levedahl <mlevedahl@gmail.com>
Sat, 19 Jul 2025 03:48:06 +0000 (23:48 -0400)
git-gui relies upon the files back-end to determine the current branch.
This does not support the newer reftables backend.  But, git-branch has
long supported --show-current to get this same information regardless of
backend cahnged.  So teach git-gui to use git-branch --show-current.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
git-gui.sh

index f438c89bedbe80d2985329970686cae1cdf599c6..0347d488a75b934d0e79d120f28beba02a927bd5 100755 (executable)
@@ -744,27 +744,8 @@ proc sq {value} {
 proc load_current_branch {} {
        global current_branch is_detached
 
-       set fd [safe_open_file [gitdir HEAD] r]
-       fconfigure $fd -translation binary -encoding utf-8
-       if {[gets $fd ref] < 1} {
-               set ref {}
-       }
-       close $fd
-
-       set pfx {ref: refs/heads/}
-       set len [string length $pfx]
-       if {[string equal -length $len $pfx $ref]} {
-               # We're on a branch.  It might not exist.  But
-               # HEAD looks good enough to be a branch.
-               #
-               set current_branch [string range $ref $len end]
-               set is_detached 0
-       } else {
-               # Assume this is a detached head.
-               #
-               set current_branch HEAD
-               set is_detached 1
-       }
+       set current_branch [git branch --show-current]
+       set is_detached [expr [string length $current_branch] == 0]
 }
 
 auto_load tk_optionMenu