diff options
Diffstat (limited to 'examples/redis-unstable/utils/graphs/commits-over-time/genhtml.tcl')
| -rwxr-xr-x | examples/redis-unstable/utils/graphs/commits-over-time/genhtml.tcl | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/examples/redis-unstable/utils/graphs/commits-over-time/genhtml.tcl b/examples/redis-unstable/utils/graphs/commits-over-time/genhtml.tcl deleted file mode 100755 index c4b4e09..0000000 --- a/examples/redis-unstable/utils/graphs/commits-over-time/genhtml.tcl +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env tclsh - -# Load commits history as "sha1 unixtime". -set commits [exec git log unstable {--pretty="%H %at"}] -set raw_tags [exec git tag] - -# Load all the tags that are about stable releases. -foreach tag $raw_tags { - if {[string match v*-stable $tag]} { - set tag [string range $tag 1 end-7] - puts $tag - } - if {[regexp {^[0-9]+.[0-9]+.[0-9]+$} $tag]} { - lappend tags $tag - } -} - -# For each tag, create a list of "name unixtime" -foreach tag $tags { - set taginfo [exec git log $tag -n 1 "--pretty=\"$tag %at\""] - set taginfo [string trim $taginfo {"}] - lappend labels $taginfo -} - -# For each commit, check the amount of code changed and create an array -# mapping the commit to the number of lines affected. -foreach c $commits { - set stat [exec git show --oneline --numstat [lindex $c 0]] - set linenum 0 - set affected 0 - foreach line [split $stat "\n"] { - incr linenum - if {$linenum == 1 || [string match *deps/* $line]} continue - if {[catch {llength $line} numfields]} continue - if {$numfields == 0} continue - catch { - incr affected [lindex $line 0] - incr affected [lindex $line 1] - } - } - set commit_to_affected([lindex $c 0]) $affected -} - -set base_time [lindex [lindex $commits end] 1] -puts [clock format $base_time] - -# Generate a graph made of HTML DIVs. -puts {<html> -<style> -.box { - position:absolute; - width:10px; - height:5px; - border:1px black solid; - background-color:#44aa33; - opacity: 0.04; -} -.label { - position:absolute; - background-color:#dddddd; - font-family:helvetica; - font-size:12px; - padding:2px; - color:#666; - border:1px #aaa solid; - border-radius: 5px; -} -#outer { - position:relative; - width:1500; - height:500; - border:1px #aaa solid; -} -</style> -<div id="outer"> -} -foreach c $commits { - set sha [lindex $c 0] - set t [expr {([lindex $c 1]-$base_time)/(3600*24*2)}] - set affected [expr $commit_to_affected($sha)] - set left $t - set height [expr {log($affected)*20}] - puts "<div class=\"box\" style=\"left:$left; bottom:0; height:$height\"></div>" -} - -set bottom -30 -foreach l $labels { - set name [lindex $l 0] - set t [expr {([lindex $l 1]-$base_time)/(3600*24*2)}] - set left $t - if {$left < 0} continue - incr bottom -20 - if {$bottom == -210} {set bottom -30} - puts "<div class=\"label\" style=\"left:$left; bottom:$bottom\">$name</div>" -} -puts {</div></html>} |
