diff --git a/svndiff.sh b/svndiff.sh index 5253de3..1e97e8b 100644 --- a/svndiff.sh +++ b/svndiff.sh @@ -1,11 +1,12 @@ #!/bin/sh # svndiff -- svn diff with vimdiff. +# http://erik.thauvin.net/blog/posts/1024/subversion-diff-with-vim # # Written by Erik C. Thauvin (erik@thauvin.net) # May 11, 2006 # -# Copyright (C) 2006 Erik C. Thauvin. All rights reserved. +# Copyright (C) 2006-2011 Erik C. Thauvin. All rights reserved. # # This software is provided "as is" without express or implied warranties. # @@ -13,28 +14,35 @@ # provided this disclaimer and copyright are preserved on all copies. This # software may not, however, be sold or distributed for profit, or included # with other software which is sold or distributed for profit, without the -# permission of the author. -# -# $Id$ +# permission of the author. # # Modified by felix021 (felix021@gmail.com) # Aug 3, 2010 +# +# Fixed the -r flag processing. +# Added support for files in directories (Francesc) +# Added a trap to make sure the temp file is removed regardless of how the +# script exits (Balbir Singh, http://www.dbacorner.com/) +# Jan 18, 2011 +# +# $Id$ PROGNAME=`basename $0` if [ $# -lt 1 ]; then - echo "Usage: $PROGNAME " + echo "Usage: $PROGNAME [-r rev]" exit; fi filename=$1 pid=$$ -TEMP=/tmp/tmp.$pid.$filename +TEMP=/tmp/tmp.$pid.`basename $filename` pv= -if [ $# -gt 3 -a $2 = "-r" ]; then +trap 'rm -f $TEMP' 0 1 2 15 + +if [ $# -eq 3 -a $2 = "-r" ]; then pv="-r $3" fi svn cat $filename $pv > $TEMP -vimdiff $TEMP $filename -rm -f $TEMP \ No newline at end of file +vimdiff $TEMP $filename \ No newline at end of file