gitk: New option to hide remote refs

In repositories with lots of remotes, looking at the history in gitk
can be borderline insane with all the red labels for remote refs.
Introduce a new option in the preferences that makes gitk ignore
remote refs entirely, so they don't take up space in the display.

Wished-for-by: Thell Fowler <tbfowler4@gmail.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Thomas Rast
2009-08-03 23:53:36 +02:00
committed by Paul Mackerras
parent 097e111822
commit ffe15297b0

18
gitk
View File

@ -1677,6 +1677,7 @@ proc readrefs {} {
global tagids idtags headids idheads tagobjid global tagids idtags headids idheads tagobjid
global otherrefids idotherrefs mainhead mainheadid global otherrefids idotherrefs mainhead mainheadid
global selecthead selectheadid global selecthead selectheadid
global hideremotes
foreach v {tagids idtags headids idheads otherrefids idotherrefs} { foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
catch {unset $v} catch {unset $v}
@ -1689,7 +1690,7 @@ proc readrefs {} {
if {![string match "refs/*" $ref]} continue if {![string match "refs/*" $ref]} continue
set name [string range $ref 5 end] set name [string range $ref 5 end]
if {[string match "remotes/*" $name]} { if {[string match "remotes/*" $name]} {
if {![string match "*/HEAD" $name]} { if {![string match "*/HEAD" $name] && !$hideremotes} {
set headids($name) $id set headids($name) $id
lappend idheads($id) $name lappend idheads($id) $name
} }
@ -2520,6 +2521,7 @@ proc savestuff {w} {
global cmitmode wrapcomment datetimeformat limitdiffs global cmitmode wrapcomment datetimeformat limitdiffs
global colors bgcolor fgcolor diffcolors diffcontext selectbgcolor global colors bgcolor fgcolor diffcolors diffcontext selectbgcolor
global autoselect extdifftool perfile_attrs markbgcolor global autoselect extdifftool perfile_attrs markbgcolor
global hideremotes
if {$stuffsaved} return if {$stuffsaved} return
if {![winfo viewable .]} return if {![winfo viewable .]} return
@ -2539,6 +2541,7 @@ proc savestuff {w} {
puts $f [list set wrapcomment $wrapcomment] puts $f [list set wrapcomment $wrapcomment]
puts $f [list set autoselect $autoselect] puts $f [list set autoselect $autoselect]
puts $f [list set showneartags $showneartags] puts $f [list set showneartags $showneartags]
puts $f [list set hideremotes $hideremotes]
puts $f [list set showlocalchanges $showlocalchanges] puts $f [list set showlocalchanges $showlocalchanges]
puts $f [list set datetimeformat $datetimeformat] puts $f [list set datetimeformat $datetimeformat]
puts $f [list set limitdiffs $limitdiffs] puts $f [list set limitdiffs $limitdiffs]
@ -10383,6 +10386,7 @@ proc doprefs {} {
global oldprefs prefstop showneartags showlocalchanges global oldprefs prefstop showneartags showlocalchanges
global bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor global bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor
global tabstop limitdiffs autoselect extdifftool perfile_attrs global tabstop limitdiffs autoselect extdifftool perfile_attrs
global hideremotes
set top .gitkprefs set top .gitkprefs
set prefstop $top set prefstop $top
@ -10391,7 +10395,7 @@ proc doprefs {} {
return return
} }
foreach v {maxwidth maxgraphpct showneartags showlocalchanges \ foreach v {maxwidth maxgraphpct showneartags showlocalchanges \
limitdiffs tabstop perfile_attrs} { limitdiffs tabstop perfile_attrs hideremotes} {
set oldprefs($v) [set $v] set oldprefs($v) [set $v]
} }
toplevel $top toplevel $top
@ -10423,6 +10427,9 @@ proc doprefs {} {
checkbutton $top.ntag -text [mc "Display nearby tags"] \ checkbutton $top.ntag -text [mc "Display nearby tags"] \
-font optionfont -variable showneartags -font optionfont -variable showneartags
grid x $top.ntag -sticky w grid x $top.ntag -sticky w
checkbutton $top.hideremotes -text [mc "Hide remote refs"] \
-font optionfont -variable hideremotes
grid x $top.hideremotes -sticky w
checkbutton $top.ldiff -text [mc "Limit diffs to listed paths"] \ checkbutton $top.ldiff -text [mc "Limit diffs to listed paths"] \
-font optionfont -variable limitdiffs -font optionfont -variable limitdiffs
grid x $top.ldiff -sticky w grid x $top.ldiff -sticky w
@ -10547,7 +10554,7 @@ proc prefscan {} {
global oldprefs prefstop global oldprefs prefstop
foreach v {maxwidth maxgraphpct showneartags showlocalchanges \ foreach v {maxwidth maxgraphpct showneartags showlocalchanges \
limitdiffs tabstop perfile_attrs} { limitdiffs tabstop perfile_attrs hideremotes} {
global $v global $v
set $v $oldprefs($v) set $v $oldprefs($v)
} }
@ -10561,6 +10568,7 @@ proc prefsok {} {
global oldprefs prefstop showneartags showlocalchanges global oldprefs prefstop showneartags showlocalchanges
global fontpref mainfont textfont uifont global fontpref mainfont textfont uifont
global limitdiffs treediffs perfile_attrs global limitdiffs treediffs perfile_attrs
global hideremotes
catch {destroy $prefstop} catch {destroy $prefstop}
unset prefstop unset prefstop
@ -10606,6 +10614,9 @@ proc prefsok {} {
$limitdiffs != $oldprefs(limitdiffs)} { $limitdiffs != $oldprefs(limitdiffs)} {
reselectline reselectline
} }
if {$hideremotes != $oldprefs(hideremotes)} {
rereadrefs
}
} }
proc formatdate {d} { proc formatdate {d} {
@ -11011,6 +11022,7 @@ set mingaplen 100
set cmitmode "patch" set cmitmode "patch"
set wrapcomment "none" set wrapcomment "none"
set showneartags 1 set showneartags 1
set hideremotes 0
set maxrefs 20 set maxrefs 20
set maxlinelen 200 set maxlinelen 200
set showlocalchanges 1 set showlocalchanges 1