As long as you don't supply the -p flag permissions shouldn't be changed. If you're still not getting the permissions you expect make sure perms is off and use --chmod=ugo=rwX
For reference:
http://linux.die.net/man/1/rsync
-r, --recursive recurse into directories
-v, --verbose increase verbosity
-z, --compress compress file data during the transfer
-n, --dry-run perform a trial run with no changes made
-p, --perms preserve permissions
-E, --executability preserve executability
--chmod=CHMOD affect file and/or directory permissions
-p, --perms This option causes the receiving rsync to set the destination permissions to be the same as the source permissions. (See
also the --chmod option for a way to modify what rsync considers to be
the source permissions.)
The man page goes on to say:
In summary: to give destination files (both old and new) the source
permissions, use --perms. To give new files the destination-default
permissions (while leaving existing files unchanged), make sure that
the --perms option is off and use --chmod=ugo=rwX (which ensures that
all non-masked bits get enabled).
Side-note: If possible it might make more sense for your developer to be pushing their changes back into the repo, and have all servers use a code repo, rather then use rsync to ship files form one server to the other.