Show More
@@ -338,7 +338,10 b' proc parsecommit {id contents listed old' | |||||
338 | } |
|
338 | } | |
339 |
|
339 | |||
340 | proc readrefs {} { |
|
340 | proc readrefs {} { | |
341 | global tagids idtags headids idheads tagcontents env |
|
341 | global tagids idtags headids idheads tagcontents env curid | |
|
342 | ||||
|
343 | set curid [exec $env(HG) --config ui.report_untrusted=false id] | |||
|
344 | regexp -- {[[:xdigit:]]+} $curid curid | |||
342 |
|
345 | |||
343 | set tags [exec $env(HG) --config ui.report_untrusted=false tags] |
|
346 | set tags [exec $env(HG) --config ui.report_untrusted=false tags] | |
344 | regsub -all "\r\n" $tags "\n" tags |
|
347 | regsub -all "\r\n" $tags "\n" tags | |
@@ -641,13 +644,14 b' proc click {w} {' | |||||
641 | proc savestuff {w} { |
|
644 | proc savestuff {w} { | |
642 | global canv canv2 canv3 ctext cflist mainfont textfont |
|
645 | global canv canv2 canv3 ctext cflist mainfont textfont | |
643 | global stuffsaved findmergefiles gaudydiff maxgraphpct |
|
646 | global stuffsaved findmergefiles gaudydiff maxgraphpct | |
644 | global maxwidth |
|
647 | global maxwidth authorcolors curidfont | |
645 |
|
648 | |||
646 | if {$stuffsaved} return |
|
649 | if {$stuffsaved} return | |
647 | if {![winfo viewable .]} return |
|
650 | if {![winfo viewable .]} return | |
648 | catch { |
|
651 | catch { | |
649 | set f [open "~/.gitk-new" w] |
|
652 | set f [open "~/.gitk-new" w] | |
650 | puts $f [list set mainfont $mainfont] |
|
653 | puts $f [list set mainfont $mainfont] | |
|
654 | puts $f [list set curidfont $curidfont] | |||
651 | puts $f [list set textfont $textfont] |
|
655 | puts $f [list set textfont $textfont] | |
652 | puts $f [list set findmergefiles $findmergefiles] |
|
656 | puts $f [list set findmergefiles $findmergefiles] | |
653 | puts $f [list set gaudydiff $gaudydiff] |
|
657 | puts $f [list set gaudydiff $gaudydiff] | |
@@ -665,6 +669,23 b' proc savestuff {w} {' | |||||
665 | set wid [expr {([winfo width $cflist] - 11) \ |
|
669 | set wid [expr {([winfo width $cflist] - 11) \ | |
666 | / [font measure [$cflist cget -font] "0"]}] |
|
670 | / [font measure [$cflist cget -font] "0"]}] | |
667 | puts $f "set geometry(cflistw) $wid" |
|
671 | puts $f "set geometry(cflistw) $wid" | |
|
672 | puts $f "#" | |||
|
673 | puts $f "# authorcolors format:" | |||
|
674 | puts $f "#" | |||
|
675 | puts $f "# zero or more sublists of" | |||
|
676 | puts $f "#" | |||
|
677 | puts $f "# { regex color }" | |||
|
678 | puts $f "#" | |||
|
679 | puts $f "# followed by a list of colors" | |||
|
680 | puts $f "#" | |||
|
681 | puts $f "# If the commit author matches a regex in a sublist," | |||
|
682 | puts $f "# the commit will be colored by that color" | |||
|
683 | puts $f "# otherwise the next unused entry from the list of colors" | |||
|
684 | puts $f "# will be assigned to this commit and also all other commits" | |||
|
685 | puts $f "# of the same author. When the list of colors is exhausted," | |||
|
686 | puts $f "# the last entry will be reused." | |||
|
687 | puts $f "#" | |||
|
688 | puts $f "set authorcolors {$authorcolors}" | |||
668 | close $f |
|
689 | close $f | |
669 | file rename -force "~/.gitk-new" "~/.gitk" |
|
690 | file rename -force "~/.gitk-new" "~/.gitk" | |
670 | } |
|
691 | } | |
@@ -757,6 +778,35 b' Use and redistribute under the terms of ' | |||||
757 | pack $w.ok -side bottom |
|
778 | pack $w.ok -side bottom | |
758 | } |
|
779 | } | |
759 |
|
780 | |||
|
781 | set aunextcolor 0 | |||
|
782 | proc assignauthorcolor {name} { | |||
|
783 | global authorcolors aucolormap aunextcolor | |||
|
784 | if [info exists aucolormap($name)] return | |||
|
785 | ||||
|
786 | set randomcolors {black} | |||
|
787 | for {set i 0} {$i < [llength $authorcolors]} {incr i} { | |||
|
788 | set col [lindex $authorcolors $i] | |||
|
789 | if {[llength $col] > 1} { | |||
|
790 | set re [lindex $col 0] | |||
|
791 | set c [lindex $col 1] | |||
|
792 | if {[regexp -- $re $name]} { | |||
|
793 | set aucolormap($name) $c | |||
|
794 | return | |||
|
795 | } | |||
|
796 | } else { | |||
|
797 | set randomcolors [lrange $authorcolors $i end] | |||
|
798 | break | |||
|
799 | } | |||
|
800 | } | |||
|
801 | ||||
|
802 | set ncolors [llength $randomcolors] | |||
|
803 | set c [lindex $randomcolors $aunextcolor] | |||
|
804 | if {[incr aunextcolor] >= $ncolors} { | |||
|
805 | incr aunextcolor -1 | |||
|
806 | } | |||
|
807 | set aucolormap($name) $c | |||
|
808 | } | |||
|
809 | ||||
760 | proc assigncolor {id} { |
|
810 | proc assigncolor {id} { | |
761 | global commitinfo colormap commcolors colors nextcolor |
|
811 | global commitinfo colormap commcolors colors nextcolor | |
762 | global parents nparents children nchildren |
|
812 | global parents nparents children nchildren | |
@@ -894,6 +944,7 b' proc drawcommitline {level} {' | |||||
894 | global lineno lthickness mainline mainlinearrow sidelines |
|
944 | global lineno lthickness mainline mainlinearrow sidelines | |
895 | global commitlisted rowtextx idpos lastuse displist |
|
945 | global commitlisted rowtextx idpos lastuse displist | |
896 | global oldnlines olddlevel olddisplist |
|
946 | global oldnlines olddlevel olddisplist | |
|
947 | global aucolormap curid curidfont | |||
897 |
|
948 | |||
898 | incr numcommits |
|
949 | incr numcommits | |
899 | incr lineno |
|
950 | incr lineno | |
@@ -952,14 +1003,25 b' proc drawcommitline {level} {' | |||||
952 | } |
|
1003 | } | |
953 | set headline [lindex $commitinfo($id) 0] |
|
1004 | set headline [lindex $commitinfo($id) 0] | |
954 | set name [lindex $commitinfo($id) 1] |
|
1005 | set name [lindex $commitinfo($id) 1] | |
|
1006 | assignauthorcolor $name | |||
|
1007 | set fg $aucolormap($name) | |||
|
1008 | if {$id == $curid} { | |||
|
1009 | set fn $curidfont | |||
|
1010 | } else { | |||
|
1011 | set fn $mainfont | |||
|
1012 | } | |||
|
1013 | ||||
955 | set date [lindex $commitinfo($id) 2] |
|
1014 | set date [lindex $commitinfo($id) 2] | |
956 | set linehtag($lineno) [$canv create text $xt $y1 -anchor w \ |
|
1015 | set linehtag($lineno) [$canv create text $xt $y1 -anchor w \ | |
957 |
-text $headline -font $ |
|
1016 | -text $headline -font $fn \ | |
|
1017 | -fill $fg] | |||
958 | $canv bind $linehtag($lineno) <<B3>> "rowmenu %X %Y $id" |
|
1018 | $canv bind $linehtag($lineno) <<B3>> "rowmenu %X %Y $id" | |
959 | set linentag($lineno) [$canv2 create text 3 $y1 -anchor w \ |
|
1019 | set linentag($lineno) [$canv2 create text 3 $y1 -anchor w \ | |
960 |
-text $name -font $namefont |
|
1020 | -text $name -font $namefont \ | |
|
1021 | -fill $fg] | |||
961 | set linedtag($lineno) [$canv3 create text 3 $y1 -anchor w \ |
|
1022 | set linedtag($lineno) [$canv3 create text 3 $y1 -anchor w \ | |
962 |
-text $date -font $mainfont |
|
1023 | -text $date -font $mainfont \ | |
|
1024 | -fill $fg] | |||
963 |
|
1025 | |||
964 | set olddlevel $level |
|
1026 | set olddlevel $level | |
965 | set olddisplist $displist |
|
1027 | set olddisplist $displist | |
@@ -3089,9 +3151,10 b' proc redisplay {} {' | |||||
3089 |
|
3151 | |||
3090 | proc incrfont {inc} { |
|
3152 | proc incrfont {inc} { | |
3091 | global mainfont namefont textfont ctext canv phase |
|
3153 | global mainfont namefont textfont ctext canv phase | |
3092 | global stopped entries |
|
3154 | global stopped entries curidfont | |
3093 | unmarkmatches |
|
3155 | unmarkmatches | |
3094 | set mainfont [lreplace $mainfont 1 1 [expr {[lindex $mainfont 1] + $inc}]] |
|
3156 | set mainfont [lreplace $mainfont 1 1 [expr {[lindex $mainfont 1] + $inc}]] | |
|
3157 | set curidfont [lreplace $curidfont 1 1 [expr {[lindex $curidfont 1] + $inc}]] | |||
3095 | set namefont [lreplace $namefont 1 1 [expr {[lindex $namefont 1] + $inc}]] |
|
3158 | set namefont [lreplace $namefont 1 1 [expr {[lindex $namefont 1] + $inc}]] | |
3096 | set textfont [lreplace $textfont 1 1 [expr {[lindex $textfont 1] + $inc}]] |
|
3159 | set textfont [lreplace $textfont 1 1 [expr {[lindex $textfont 1] + $inc}]] | |
3097 | setcoords |
|
3160 | setcoords | |
@@ -3772,6 +3835,7 b' set diffopts "-U 5 -p"' | |||||
3772 | set wrcomcmd "\"\$HG\" --config ui.report_untrusted=false debug-diff-tree --stdin -p --pretty" |
|
3835 | set wrcomcmd "\"\$HG\" --config ui.report_untrusted=false debug-diff-tree --stdin -p --pretty" | |
3773 |
|
3836 | |||
3774 | set mainfont {Helvetica 9} |
|
3837 | set mainfont {Helvetica 9} | |
|
3838 | set curidfont {} | |||
3775 | set textfont {Courier 9} |
|
3839 | set textfont {Courier 9} | |
3776 | set findmergefiles 0 |
|
3840 | set findmergefiles 0 | |
3777 | set gaudydiff 0 |
|
3841 | set gaudydiff 0 | |
@@ -3779,9 +3843,16 b' set maxgraphpct 50' | |||||
3779 | set maxwidth 16 |
|
3843 | set maxwidth 16 | |
3780 |
|
3844 | |||
3781 | set colors {green red blue magenta darkgrey brown orange} |
|
3845 | set colors {green red blue magenta darkgrey brown orange} | |
|
3846 | set authorcolors { | |||
|
3847 | deeppink mediumorchid blue burlywood4 goldenrod slateblue red2 navy dimgrey | |||
|
3848 | } | |||
3782 |
|
3849 | |||
3783 | catch {source ~/.gitk} |
|
3850 | catch {source ~/.gitk} | |
3784 |
|
3851 | |||
|
3852 | if {$curidfont == ""} { # initialize late based on current mainfont | |||
|
3853 | set curidfont "$mainfont bold italic underline" | |||
|
3854 | } | |||
|
3855 | ||||
3785 | set namefont $mainfont |
|
3856 | set namefont $mainfont | |
3786 | if {$boldnames} { |
|
3857 | if {$boldnames} { | |
3787 | lappend namefont bold |
|
3858 | lappend namefont bold |
General Comments 0
You need to be logged in to leave comments.
Login now