On Tue, Apr 12, 2016 at 9:59 PM, David Holmer <[email protected]> wrote:
> Consider this example branch:
>
> remotes/origin/master
>
> gitk displays this branch with different background colors for each part:
> "remotes/origin" in orange and "master" in green. The idea is to make it
> visually easy to read the branch name separately from the remote name.
>
> However this fails when given this example branch:
>
> remotes/origin/foo/bar
>
> gitk displays this branch with "remotes/origin/foo" in orange and "bar" in
> green. This makes it hard to read the branch name "foo/bar". This is due
> to an inappropriately greedy regexp. This patch provides a fix so the same
> branch will now be displayed with "remotes/origin" in orange and "foo/bar"
> in green.
>
> Signed-off-by: David Holmer <[email protected]>
> ---
>  gitk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gitk b/gitk
> index 805a1c7..ca2392b 100755
> --- a/gitk
> +++ b/gitk
> @@ -6640,7 +6640,7 @@ 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]} {
> +           if {[regexp {^(remotes/[^/]*/|remotes/)} $tag match 
> remoteprefix]} {
>                 set rwid [font measure mainfont $remoteprefix]
>                 set xi [expr {$x + 1}]
>                 set yti [expr {$yt + 1}]
> --

This likely fixes the problem for most situations, but doesn't for a
remote with a '/' in the name.  Yet, I think this is a better state
than the present.

Is the regex `[^/]*/` more efficient than '.*?/`?  Or do you find the
former more readable?
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to