Description
executable flag not correctly set on merge (refer to http://mail-archives.apache.org/mod_mbox/subversion-users/201007.mbox/browser "merging executable binaries") when merging a binary the executable flag on the file is lost while the svn property is still correct steps to reproduce: $ svnadmin create /a/svnserver $ svn checkout file:///a/svnserver /a/wc Checked out revision 0. $ cd /a/wc $ mkdir trunk $ mkdir branches $ mkdir tags $ svn add trunk tags branches A trunk A tags A branches $ svn commit -m "initial structure" Adding branches Adding tags Adding trunk Committed revision 1. $ svn switch file:///a/svnserver/trunk D trunk D branches D tags Updated to revision 1. $ dd if=/dev/urandom of=executable.bin bs=1k count=1 1+0 records in 1+0 records out 1024 bytes (1.0 kB) copied, 0.000298366 s, 3.4 MB/s $ ls -la total 16 drwxr-xr-x 3 devtsd devtsd 4096 2010-07-07 07:58 . drwxr-xr-x 12 devtsd devtsd 4096 2010-07-07 07:56 .. -rw-r--r-- 1 devtsd devtsd 1024 2010-07-07 07:58 executable.bin drwxr-xr-x 6 devtsd devtsd 4096 2010-07-07 07:57 .svn $ svn propset svn:executable ON executable.bin property 'svn:executable' set on 'executable.bin' $ ls -la total 16 drwxr-xr-x 3 devtsd devtsd 4096 2010-07-07 07:58 . drwxr-xr-x 12 devtsd devtsd 4096 2010-07-07 07:56 .. -rwxr-xr-x 1 devtsd devtsd 1024 2010-07-07 07:58 executable.bin drwxr-xr-x 6 devtsd devtsd 4096 2010-07-07 08:02 .svn $ svn commit -m "executable added" Adding (bin) executable.bin Transmitting file data . Committed revision 2. $ svn copy file:///a/svnserver/trunk file:///a/svnserver/branches/b1 - "created branch b1" Committed revision 3. $ dd if=/dev/urandom of=executable.bin bs=1k count=1 1+0 records in 1+0 records out 1024 bytes (1.0 kB) copied, 0.000177119 s, 5.8 MB/s $ ls -la total 16 drwxr-xr-x 3 devtsd devtsd 4096 2010-07-07 08:04 . drwxr-xr-x 12 devtsd devtsd 4096 2010-07-07 07:56 .. -rwxr-xr-x 1 devtsd devtsd 1024 2010-07-07 08:04 executable.bin drwxr-xr-x 6 devtsd devtsd 4096 2010-07-07 08:02 .svn $ svn commit -m "executable modified" Sending executable.bin Transmitting file data . Committed revision 4. $ svn switch file:///a/svnserver/branches/b1 U executable.bin Updated to revision 4. $ ls -la total 16 drwxr-xr-x 3 devtsd devtsd 4096 2010-07-07 08:06 . drwxr-xr-x 12 devtsd devtsd 4096 2010-07-07 07:56 .. -rwxr-xr-x 1 devtsd devtsd 1024 2010-07-07 08:06 executable.bin drwxr-xr-x 6 devtsd devtsd 4096 2010-07-07 08:06 .svn $ svn merge file:///a/svnserver/trunk -r 3:4 --- Merging r4 into '.': U executable.bin $ ls -la total 16 drwxr-xr-x 3 devtsd devtsd 4096 2010-07-07 08:07 . drwxr-xr-x 12 devtsd devtsd 4096 2010-07-07 07:56 .. -rw-r--r-- 1 devtsd devtsd 1024 2010-07-07 08:07 executable.bin drwxr-xr-x 6 devtsd devtsd 4096 2010-07-07 08:07 .svn $ svn commit -m "executable now has no execute flag which it should but this will change with the commit" Sending . Sending executable.bin Transmitting file data . Committed revision 5. $ ls -la total 16 drwxr-xr-x 3 devtsd devtsd 4096 2010-07-07 08:07 . drwxr-xr-x 12 devtsd devtsd 4096 2010-07-07 07:56 .. -rwxr-xr-x 1 devtsd devtsd 1024 2010-07-07 08:07 executable.bin drwxr-xr-x 6 devtsd devtsd 4096 2010-07-07 08:07 .svn
Original issue reported by mweyh