#!/bin/sh LC_ALL=C SVNCMD=svn if ! which -s ${SVNCMD}; then SVNCMD=svnlite if ! which -s ${SVNCMD}; then echo "Cannot find svn" >&2 exit 1 fi fi case $# in 1) startrev=$1 ;; 2) startrev=$1 ; endrev=$2 ;; 3) startrev=$1 ; endrev=$2 ; branch=$3 ;; *) echo "usage $0 initialrev [finalrev] [branch]" >&2 exit 1 ;; esac echo -n "Number of commits: " ${SVNCMD} log svn://svn.freebsd.org/ports/${branch:-head} -r${startrev}:${endrev:-HEAD} | grep -c '^r[0-9].*lines$' echo -n "Number of committers: " ${SVNCMD} log svn://svn.freebsd.org/ports/${branch:-head} -r${startrev}:${endrev:-HEAD} | awk -F\| '/^r[0-9].*lines$/ { print $2 }' | sort -u | wc -l echo "Most active committers:" ${SVNCMD} log svn://svn.freebsd.org/ports/${branch:-head} -r${startrev}:${endrev:-HEAD} | awk -F\| '/^r[0-9].*lines$/ { print $2 }' | sort | uniq -c | sort -rn | head -10 if which -s diffstat; then echo -n "Diffstat:" svn diff svn://svn.freebsd.org/ports/${branch:-head} -r${startrev}:${endrev:-HEAD} | tail -1 else echo "Cannot find diffstat skipping that statistic" >&2 fi