I have s3cmd always use --rexclude='.svn' to make sure that if I am in a svn repo at the time, not to send all the hidden svn junk. Problem is, when I use it to upload files, say, all those that end in a .gz, I end up uploading the .svn files since the include seems to override the exclude. Is this by design? Or a bug, or a user error?
that's right, --include overrides --exclude, that's by design. Have a look at http://s3tools.org/s3cmd-sync#filters for more details.
In your case, when you're excluding .svn, why do you also have an --include pattern there? Let me know what exactly you're trying to achieve, apart from excluding .svn dirs, and I'll help you with the patterns.