gitk: fix error when remote tracking branch is deleted
When a remote tracking branch is deleted (e.g., via 'git push --delete origin branch'), the headids array entry for that branch is removed, but upstreamofref may still reference it. This causes gitk to show an error and prevents the Tags and Heads view from opening. Fix by checking that headids($upstreamofref($n)) exists before accessing it in the refill_reflist function. Signed-off-by: Michael Rappazzo <rappazzo@gmail.com> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Michael Rappazzo committed
Sep 13, 2025 at 07:31 UTC
88189dd7cb535486b74bcf50997253797f4b999c
1 file changed
+3
-1
gitk
+3
-1
@@ -10332,7 +10332,9 @@ proc refill_reflist {} {
10332
if {![string match "remotes/*" $n] && [string match $reflistfilter $n]} {
10333
if {[commitinview $headids($n) $curview]} {
10334
lappend localrefs [list $n H]
10335
- if {[info exists upstreamofref($n)] && [commitinview $headids($upstreamofref($n)) $curview]} {
10335
+ if {[info exists upstreamofref($n)] && \
10336
+ [info exists headids($upstreamofref($n))] && \
10337
+ [commitinview $headids($upstreamofref($n)) $curview]} {
10338
lappend trackedremoterefs [list $upstreamofref($n) R]
10339
}
10340
} else {