OLD | NEW |
(Empty) | |
| 1 #!/bin/bash |
| 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. |
| 5 |
| 6 about="Given a grep expression, creates a graph of occurrences of that |
| 7 expression in the recent history of the tree. |
| 8 |
| 9 Prerequisites: git and GNU R (apt-get install r-base). |
| 10 " |
| 11 |
| 12 set -e |
| 13 |
| 14 target="$1" |
| 15 |
| 16 if [ -z $target ]; then |
| 17 echo "usage: $0 <grep-compatible expression>" |
| 18 echo |
| 19 echo "$about" |
| 20 exit 1 |
| 21 fi |
| 22 |
| 23 datafile=$(mktemp -t tmp.XXXXXXXXXX) |
| 24 trap "rm -f $datafile" EXIT |
| 25 |
| 26 echo 'ago count' > $datafile |
| 27 for ago in {90..0}; do |
| 28 commit=$(git rev-list -1 --until="$ago days ago" origin/trunk) |
| 29 git checkout -q -f $commit |
| 30 count=$(git grep -E "$target" -- '*.cc' '*.h' '*.m' '*.mm' | wc -l) |
| 31 echo "-$ago $count" >> $datafile |
| 32 echo -n '.' |
| 33 done |
| 34 |
| 35 R CMD BATCH <(cat <<EOF |
| 36 data = read.delim("$datafile", sep=' ') |
| 37 png(width=600, height=300) |
| 38 plot(count ~ ago, type="l", main="$target", xlab='days ago', data=data) |
| 39 EOF |
| 40 ) /dev/null |
| 41 |
| 42 echo done. # Primarily to add a newline after all the dots. |
OLD | NEW |