Editing File:Kernel patches stats.png
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | |||
− | |||
== Description == | == Description == | ||
− | This graph shows how many patches from OpenVZ developers | + | This graph shows how many patches from OpenVZ developers are merged in mainstream, for each kernel version. |
− | It is | + | It is done in gnuplot. Data set produced by a simple shell script working on git repository. |
== Source code == | == Source code == | ||
+ | |||
=== Collect data === | === Collect data === | ||
− | Here is the script to produce the data for the graph | + | Here is the script to produce the data for the graph: |
<small><source lang="bash"> | <small><source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
− | + | latest=$(git tag | grep -v -- -rc | tail -n1 | sed -e 's/^.*\.\(.*\)$/\1/') | |
− | + | ((latest++)) | |
− | |||
− | |||
− | |||
get_tag_date() { | get_tag_date() { | ||
− | + | echo $(git show $1 | egrep ^Date: | head -n1) | | |
− | + | sed 's/^Date: ... \(.*\) [-+]....$/\1/' | | |
− | + | sed 's/ ..:..:..//' | sed 's/ /-/g' | |
} | } | ||
− | + | for f in $(seq 13 $latest); do | |
− | + | v1=v2.6.$((f-1)) | |
− | + | d1=$(get_tag_date $v1) | |
− | + | if [ $f = $latest ]; then | |
− | + | v2="HEAD " | |
− | + | else | |
+ | v2=v2.6.$f | ||
+ | fi | ||
+ | d2=$(get_tag_date $v2) | ||
+ | echo -n $d2 $v2 " " | ||
+ | git log --pretty=short --no-merges $v1..$v2 | grep 'Author:' | egrep \ | ||
+ | '@openvz.org|@parallels.com|@sw.ru|@swsoft.com|@sw.com.sg|adobriyan@|kuznet@' | wc -l | ||
+ | done | sed 's/ /\t/g' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source></small> | </source></small> | ||
Line 81: | Line 43: | ||
<small><source lang="bash"> | <small><source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
if test "$1" != "-f"; then | if test "$1" != "-f"; then | ||
− | + | git pull | |
− | + | sh count > time.dat | |
− | |||
− | |||
− | |||
− | |||
fi | fi | ||
− | DATE=$( | + | DATE=$(date '+%d %b %Y') |
− | MAXY=$(awk 'BEGIN {max=0}; ($3 > max) {max=$3}; END {print max+ | + | MAXY=$(awk 'BEGIN {max=0}; ($3 > max) {max=$3}; END {print max+50}' < time.dat) |
− | |||
− | |||
+ | export GDFONTPATH=/usr/share/fonts/msttcorefonts/ | ||
cat << EOF | gnuplot > plot.png | cat << EOF | gnuplot > plot.png | ||
− | set terminal png enhanced font | + | set terminal png transparent nocrop enhanced font verdanab 8 size 600,400 |
− | |||
set title "OpenVZ team kernel patches progress as of ${DATE}" | set title "OpenVZ team kernel patches progress as of ${DATE}" | ||
Line 112: | Line 62: | ||
set timefmt "%b-%d-%Y" | set timefmt "%b-%d-%Y" | ||
set format x "%b\n%Y" | set format x "%b\n%Y" | ||
− | |||
− | |||
set yrange [ 0 : ${MAXY} ] | set yrange [ 0 : ${MAXY} ] | ||
− | set ylabel "Number of patches | + | set ylabel "Number of patches accepted into mainstream" |
− | set border 3 | + | set border 3 # no lines at right and top |
− | set xtics nomirror # no tics at top | + | set xtics nomirror # no tics at top |
− | set ytics nomirror # no tics at right | + | set ytics nomirror # no tics at right |
− | plot ' | + | plot 'time.dat' using 1:3 with linespoints pt 7 ps 1.5 lw 2 lt 2 notitle, \ |
− | + | '' using 1:3:2 with labels left offset 0,1 rotate notitle, \ | |
− | + | '' using 1:3:3 with labels left offset 0.7,0 notitle | |
EOF | EOF | ||
</source></small> | </source></small> |