[PATCH] hgk: Display branch name for each head (issue 740)

Patrick Mézard pmezard at gmail.com
Mon Sep 15 02:25:13 CDT 2008


Michael Sommerville a écrit :
> # HG changeset patch
> # User Michael Sommerville <msommerville at gmail.com>
> # Date 1220996547 -3600
> # Node ID 91864578db8a2b0543f536bfc147198e65d1c48c
> # Parent  6651de7176a01c8e93ecfcc4f7f1a2ec5ff02c73
> hgk: Display branch name for each head (issue 740)
> 
> In the graphical view, each head is decorated with an additonal tag
> containing the branch name.

Good idea. About the clutter, it should be changed to work like in hg log or similar commands: do not display the default branch name.

> 
> diff -r 6651de7176a0 -r 91864578db8a contrib/hgk
> --- a/contrib/hgk	Tue Sep 09 21:32:39 2008 +0200
> +++ b/contrib/hgk	Tue Sep 09 22:42:27 2008 +0100
> @@ -370,6 +370,25 @@
>  	lappend tagids($direct) $tag
>  	lappend idtags($tag) $direct
>      }
> +
> +    set status [catch {exec $env(HG) --config ui.report_untrusted=false heads} heads]
> +    if { $status != 0 } {
> +        puts $::errorInfo
> +        if { ![string equal $::errorCode NONE] } {
> +            exit 2
> +        }
> +    }
> +    regsub -all "\r\n" $heads "\n" heads
> +
> +    set lines [split $heads "\n"]
> +    foreach f $lines {
> +        set match ""
> +        regexp {changeset:\s+(\S+):(\S+)$} $f match id sha
> +        if {$match != ""} {
> +        lappend idheads($sha) $id
> +        }
> +    }
> +
>  }
>  
>  proc readotherrefs {base dname excl} {
> @@ -1045,7 +1064,7 @@
>  }
>  
>  proc drawtags {id x xt y1} {
> -    global idtags idheads idotherrefs
> +    global idtags idheads idotherrefs commitinfo
>      global linespc lthickness
>      global canv mainfont idline rowtextx
>  
> @@ -1057,7 +1076,8 @@
>  	set ntags [llength $marks]
>      }
>      if {[info exists idheads($id)]} {
> -	set marks [concat $marks $idheads($id)]
> +    set head_mark [lindex $commitinfo($id) 7]

s/head_mark/headmark/

> +	set marks [concat $marks $head_mark]
>  	set nheads [llength $idheads($id)]
>      }
>      if {[info exists idotherrefs($id)]} {

--
Patrick Mézard



More information about the Mercurial-devel mailing list