exclude_internal () { grep -E -v '(^|/)(.git|.hg|.bzr|_darcs)/' }
should probably escape the .s.
.
exclude_internal () { grep -E -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/' }
fixed --?Joey