From: Josef Weidendorfer Date: Tue, 18 Apr 2006 21:53:07 +0000 (+0200) Subject: [PATCH] gitk: Add a visual tag for remote refs X-Git-Tag: v1.4.0-rc1~21^2~12 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=a970fcf249534ca21ad721b289402c135722a24c;p=git.git [PATCH] gitk: Add a visual tag for remote refs This patch partly changes the background color for remote refs. It makes it easy to quickly distinguish remote refs from local developer branches. I ignore remote HEADs, as these really should be drawn as aliases to other heads. But there is no simple way to detect that HEADs really are aliases for other refs via "git-ls-remote". Signed-off-by: Josef Weidendorfer Signed-off-by: Paul Mackerras --- diff --git a/gitk b/gitk index 5362b76be..7e80a7b98 100755 --- a/gitk +++ b/gitk @@ -274,10 +274,16 @@ proc readrefs {} { match id path]} { continue } + if {[regexp {^remotes/.*/HEAD$} $path match]} { + continue + } if {![regexp {^(tags|heads)/(.*)$} $path match type name]} { set type others set name $path } + if {[regexp {^remotes/} $path match]} { + set type heads + } if {$type == "tags"} { set tagids($name) $id lappend idtags($id) $name @@ -1702,6 +1708,14 @@ proc drawtags {id x xt y1} { set xl [expr {$xl - $delta/2}] $canv create polygon $x $yt $xr $yt $xr $yb $x $yb \ -width 1 -outline black -fill $col -tags tag.$id + if {[regexp {^(remotes/.*/|remotes/)} $tag match remoteprefix]} { + set rwid [font measure $mainfont $remoteprefix] + set xi [expr {$x + 1}] + set yti [expr {$yt + 1}] + set xri [expr {$x + $rwid}] + $canv create polygon $xi $yti $xri $yti $xri $yb $xi $yb \ + -width 0 -fill "#ffddaa" -tags tag.$id + } } set t [$canv create text $xl $y1 -anchor w -text $tag \ -font $mainfont -tags tag.$id]