exclude_internal () {
        egrep -v '(^|/)(.git|.hg|.bzr|_darcs)/'
}

should probably escape the .s.

exclude_internal () {
        egrep -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
}

fixed --?Joey