# Homepage: http://code.google.com/p/coderev # License: GPLv2, see "COPYING" # # This library implements svn operations, see comments in coderev.sh # # $Id: libsvn.sh 10 2008-08-23 09:02:26Z mattwyl $ SVN_OPS=( svn_get_banner svn_get_repository svn_get_project_path svn_get_working_revision svn_get_active_list svn_get_diff svn_get_diff_opt ) function svn_get_banner { echo "Subversion" return 0 } function svn_get_repository { svn info . | grep '^Repository Root:' | cut -c18- } function svn_get_project_path { local root=$(svn_get_repository) local url=$(svn info . | grep '^URL:' | cut -c6-) echo ${url#${root}/} } function svn_get_working_revision { local pathname="." [[ -n $1 ]] && [[ -z $2 ]] && pathname=$1 svn info $pathname | grep '^Revision:' | cut -c11- } function svn_get_active_list { svn st $@ | grep '^[A-Z]' | awk '{print $2}' } function svn_get_diff { local op diff_opt OPTIND OPTARG while getopts "r:" op; do case $op in r) diff_opt="-r $OPTARG" ;; ?) echo "Unknown option: -$op" >&2; exit 1;; esac done shift $((OPTIND - 1)) svn diff $diff_opt $@ | sed '/^Property changes on:/,/^$/d' | grep -v '^$' } function svn_get_diff_opt { echo "-r $1" }