Chromium Code Reviews| Index: tools/git/graph.sh |
| diff --git a/tools/git/graph.sh b/tools/git/graph.sh |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..9b79ffb57dd25db16e6e83babed522fe0d967146 |
| --- /dev/null |
| +++ b/tools/git/graph.sh |
| @@ -0,0 +1,42 @@ |
| +#!/bin/bash |
| +# Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +about="Given a grep expression, creates a graph of occurrences of that |
| +expression in the recent history of the tree. |
| + |
| +Prerequisites: git and GNU R (apt-get install r-base). |
| +" |
| + |
| +set -e |
| + |
| +target="$1" |
| + |
| +if [ -z $target ]; then |
| + echo "usage: $0 <grep-compatible expression>" |
| + echo |
| + echo "$about" |
| + exit 1 |
| +fi |
| + |
| +datafile=$(mktemp) |
| +echo 'ago count' > $datafile |
| +for ago in $(seq 90 -1 0); do |
|
Nico
2010/08/05 18:11:53
`for ago in {90..0}; do` instead?
|
| + commit=$(git rev-list -1 --until="$ago days ago" origin/trunk) |
| + git checkout -q -f $commit |
| + count=$(git grep -E "$target" -- '*.cc' '*.h' '*.m' '*.mm' | wc -l) |
| + echo "-$ago $count" >> $datafile |
| + echo -n '.' |
| +done |
| + |
| +R CMD BATCH <(cat <<EOF |
|
Nico
2010/08/05 18:11:53
Neat, I wasn't actively aware that <() evaluates t
|
| +data = read.delim("$datafile", sep=' ') |
| +png(width=600, height=300) |
| +plot(count ~ ago, type="l", main="$target", xlab='days ago', data=data) |
| +EOF |
| +) /dev/null |
| + |
| +echo done. |
| + |
| +rm -f $datafile |
|
Nico
2010/08/05 18:11:53
do you want a trap for this? if not, maybe a comme
|