// This will compare two lists of files in bash fairly efficiently without using diff or grep etc.


#!/bin/bash

SVN_FILES="::$(svn ls http://svn.domain.com:3690/svn/repo/path/to/files|tr '\n/' ':')"
DIR_FILES=":$(ls /path/to/files/|tr '\n' ':')"

for DIR_FILE in ${DIR_FILES//:/ }
do

for SVN_FILE in ${SVN_FILES//::/ }
do

if [ "${DIR_FILE}" = "${SVN_FILE}" ]
then
: echo "YES ${DIR_FILE} ${SVN_FILE}"
SVN_FILES=${SVN_FILES/:${SVN_FILE}:/}
DIR_FILES=${DIR_FILES/:${DIR_FILE}:/:}
continue
else
: echo " no ${DIR_FILE} ${SVN_FILE}"
fi

done

done

for DIR_FILE in ${DIR_FILES//:/ }
do
echo "Left: file [$DIR_FILE]"
done

for SVN_FILE in ${SVN_FILES//::/ }
do
echo "Left: svn [$SVN_FILE]"
done

Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/yo9DmSpIwqk/10267