Address issue #4331, "working copy permissions change on commit for files with keywords" by preventing the accidental removal of existing permission bits set on files which undergo translation.
This is not a perfect answer to the proposition given in the issue that "Committing a file should not change its permissions in the WC." Committed files may still get a new owner/group/other write bit set if the umask allows this and the file's properties indicate that the file must be set read-write (see svn_wc__sync_flags_with_props() which might tweak permission bits of the translated file). But I think this is acceptable. I'm not sure if never changing the permission bits of committed files is a realistic requirement. Changing this would require additional effort and might break other scenarios.
* subversion/libsvn_subr/subst.c (svn_subst_copy_and_translate4): Copy file permissions from the source file to the temporary file which stores the translated result. The temporary file might have stricter permissions than the source, due to the way our APIs for creating temporary files work. Removing permission bits from files during translation is an unwanted side effect and should be avoided.