The find piece could also be used for more general tasks -- just remove the pipe and take a look at the output to see if it will work for you.
I tried (and failed) to use the find to a path preserving copy from within a subdirectory in a checkout...though there must be a way.
find . -path '*/.svn' -prune -o -type f -print | xargs -e grep -I -n -e PATTERN