Cathy Fitzpatrick wrote: > Hi again Philip, > > Sorry, I was a bit too hasty in saying this was machine dependent. > Your test case does respect the umask on all of the machines I am > trying it on, but [...] > [Cathy@localhost subversion]$ svn revert INSTALL > Reverted 'INSTALL' > [Cathy@localhost subversion]$ ls -l INSTALL > -rw-rw-r--. 1 Cathy Cathy 63057 Nov 22 03:29 INSTALL > [Cathy@localhost subversion]$ umask 070 > [Cathy@localhost subversion]$ svn patch patch > U INSTALL > [Cathy@localhost subversion]$ ls -ls INSTALL > 68 -rw-------. 1 Cathy Cathy 63062 Nov 22 03:29 INSTALL
Hi Cathy. I can confirm Philip's recipe behaves as he showed and yours behaves as you showed, also on my system (Ubuntu 12.04, svn trunk). With your patch and your recipe above I get this result: $ svn revert INSTALL && ls -l INSTALL && (umask 070 && svn patch patch) && ls -l INSTALL Reverted 'INSTALL' -rw-rw-r-- 1 julianfoad julianfoad 63057 Nov 22 10:49 INSTALL U INSTALL -rw----rw- 1 julianfoad julianfoad 63062 Nov 22 10:49 INSTALL Is that what you get? > This is just a guess to be verified later: it may be that the bug only > occurs if a file has an EOL property specified. That result is the same as in Philip's recipe (without keyword/eol-style). So that seems to me like a good fix. I was a bit surprised at first because it *adds* world-writable permission, but maybe that's just fine given we specified a umask that allows this. At first I was expecting that it should never add permissions, but only take away any umasked-permissions and preserve the rest. But that's probably a question for another day. One other thing. In your patch you use "svn_dirent_dirname(wcroot_abspath,)" for the temp-file directory. This puts the temp file *outside* the WC. I haven't checked what we do in other places but using 'wcroot_abspath' iteself would be less likely to fail, and probably even better is the directory where the to-be-patched filed itself is. - Julian [Philip's recipe results:] >>> $ ls -l wc/f >>> -rw-r--r-- 1 pm pm 2 Nov 22 10:03 wc/f >>> $ (umask 070 && svn patch p wc) >>> U wc/f >>> $ ls -l wc/f >>> -rw----rw- 1 pm pm 5 Nov 22 10:00 wc/f >>> >>> I get that behaviour with 1.7, 1.8 and trunk.