| Index: tools/git/graph.sh
|
| diff --git a/tools/git/graph.sh b/tools/git/graph.sh
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..800a52b86c8e2065fa2b07dd47559f5d4a134493
|
| --- /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 -t tmp.XXXXXXXXXX)
|
| +trap "rm -f $datafile" EXIT
|
| +
|
| +echo 'ago count' > $datafile
|
| +for ago in {90..0}; do
|
| + 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
|
| +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. # Primarily to add a newline after all the dots.
|
|
|