| #!/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. |