How do I find (or exclude) all directories and sub-directories matching a certain pattern (in Linux)?

find . -type d -not \( -name .svn -prune \)

What about simply

find . -type d |  grep -v '.svn'

What about the -path option to find?

find . -type d ! -path '*.svn*'

find . -path './tmp' -prune -o .......