SVNROOT=/var/svn
EMAIL=your@email.here
STORE=`mktemp -d`
GPGCRYPT=n
for REPO in `ls $SVNROOT`; do
REPOPATH=$SVNROOT/$REPO;
if [ -r $REPOPATH/youngest ]; then
LATEST=`cat $REPOPATH/youngest`
YOUNGEST=`svnlook youngest $REPOPATH`
if [ $LATEST -lt $YOUNGEST ]; then
svnadmin dump $REPOPATH --incremental -r $LATEST:$YOUNGEST >$STORE/$REPO 2>/dev/null
fi
else
svnadmin dump $REPOPATH --incremental >$STORE/$REPO 2>/dev/null
fi
echo $YOUNGEST >$REPOPATH/youngest
done
if [ `ls $STORE | wc -w` -gt 0 ]; then
BACKUP=repodiff_`date -u +%Y%m%d%H%M%S`.tar.bz2
ATTACH=$STORE/../$BACKUP
tar -C $STORE -cjf $ATTACH .
if [ $GPGCRYPT = y ]; then
gpg -e -r $EMAIL $ATTACH
ATTACH=$ATTACH.gpg
fi
echo "." | mutt -c $EMAIL -a $ATTACH -s "repository incremental backup"
rm -f $ATTACH
fi
rm -rf $STORE