Comme suit :
find . -path '*/.svn*' -prune -o -print
Ou, alternativement basé sur un répertoire et non sur un préfixe de chemin :
find . -name .svn -a -type d -prune -o -print
pourquoi pas juste
find . -not -iwholename '*.svn*'
Le prédicat -not annule tout ce qui a .svn n'importe où dans le chemin.
Donc, dans votre cas, ce serait
find -not -iwholename '*.svn*' -name 'messages.*' -exec grep -Iw uint {} + \;