From: Michael Rappazzo Date: Fri, 18 Jul 2025 20:33:08 +0000 (-0400) Subject: gitk: make 'sort-refs-by-type' optional and persistent X-Git-Tag: v2.51.0-rc0~47^2~2^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9abe70db6cf916e32a4dbbb593cc361cfd67dd65;p=thirdparty%2Fgit.git gitk: make 'sort-refs-by-type' optional and persistent On the 'tags and heads' view, add an option to enable or disable 'Sort refs by type'. This option is read from and written to the config file. Clicking on the option will update the refs in the view. Signed-off-by: Michael Rappazzo Signed-off-by: Johannes Sixt --- diff --git a/gitk b/gitk index 911fa63089..a22b1bbfc6 100755 --- a/gitk +++ b/gitk @@ -10261,6 +10261,9 @@ proc showrefs {} { pack $top.f.e -side right -fill x -expand 1 pack $top.f.l -side left grid $top.f - -sticky ew -pady 2 + ${NS}::checkbutton $top.sort -text [mc "Sort refs by type"] \ + -variable sortrefsbytype -command {refill_reflist} + grid $top.sort - -sticky w -pady 2 ${NS}::button $top.close -command [list destroy $top] -text [mc "Close"] bind $top [list destroy $top] grid $top.close - @@ -10304,7 +10307,7 @@ proc reflistfilter_change {n1 n2 op} { } proc refill_reflist {} { - global reflist reflistfilter showrefstop headids tagids otherrefids + global reflist reflistfilter showrefstop headids tagids otherrefids sortrefsbytype global curview if {![info exists showrefstop] || ![winfo exists $showrefstop]} return @@ -10356,7 +10359,11 @@ proc refill_reflist {} { } } set otherrefs [lsort -index 0 $otherrefs] + set refs [concat $localrefs $remoterefs $tagrefs $otherrefs] + if {!$sortrefsbytype} { + set refs [lsort -index 0 $refs] + } if {$refs eq $reflist} return @@ -12618,6 +12625,7 @@ set wrapcomment "none" set wrapdefault "none" set showneartags 1 set hideremotes 0 +set sortrefsbytype 1 set maxrefs 20 set visiblerefs {"master"} set maxlinelen 200 @@ -12732,7 +12740,7 @@ set config_variables { filesepbgcolor filesepfgcolor linehoverbgcolor linehoverfgcolor linehoveroutlinecolor mainheadcirclecolor workingfilescirclecolor indexcirclecolor circlecolors linkfgcolor circleoutlinecolor diffbgcolors - web_browser + sortrefsbytype web_browser } foreach var $config_variables { config_init_trace $var