gitk: Fix display of branch names on some commits
Sometimes the code that divides commits up into arcs creates two successive arcs, but the commit between them (the commit at the end of the first arc and the beginning of the second arc) has only one parent and one child. If that commit is also the head of one or more branches, those branches get omitted from the "Branches" field in the commit display. The omission occurs because the commit gets erroneously identified as a commit which is part-way along an arc in [descheads]. This fixes it by changing the test to look at the arcouts array, which only contains elements for the commits at the start or end of an arc. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Paul Mackerras committed
Jan 1, 2013 at 16:51 UTC
d809fb17b00f912112090294ff0257c8a87af56e
1 file changed
+2
-2
gitk
+2
-2
@@ -10582,13 +10582,13 @@ proc anctags {id} {
10582
# including id itself if it has a head.
10583
proc descheads {id} {
10584
global arcnos arcstart arcids archeads idheads cached_dheads
10585
- global allparents
10585
+ global allparents arcout
10586
10587
if {![info exists allparents($id)]} {
10588
return {}
10589
}
10590
set aret {}
10591
- if {[llength $arcnos($id)] == 1 && [llength $allparents($id)] == 1} {
10591
+ if {![info exists arcout($id)]} {
10592
# part-way along an arc; check it first
10593
set a [lindex $arcnos($id) 0]
10594
if {$archeads($a) ne {}} {