Ok, depois de várias tentativas, resolvi isso:
rsync -vaiz --delete --exclude=.svn/ --include='*.php' --include='*.js' \
--include='*/' --exclude='*' --prune-empty-dirs \
--filter "protect .svn/" /origin /destination
Outra abordagem
caso você não se importe de sincronizar diretórios vazios, apenas:
rsync -vaiz --delete --exclude=.svn/ --include='*.php' --include='*.js' \
--include='*/' --exclude='*' /origin /destination
A chave foi para --exclude=.svn/
antes do --include
's