Hello,
I have added a command list for reproducing the issue.
Please note the last commit message. At this point the executable flag
is missing. It is however recovered on the commit.
best regards,
Matthias
$ 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
-----Ursprüngliche Nachricht-----
Von: Daniel Shahaf [mailto:d.s_at_daniel.shahaf.name]
Gesendet: Dienstag, 6. Juli 2010 20:35
An: Matthias Weyh
Cc: users_at_subversion.apache.org
Betreff: Re: merging executable binaries
It's not clear to me exactly what you did. (The most unambiguous way to
explain yourself is to post a list of commands, starting from 'svnadmin
create'.) However, if you run 'svn merge' and at the end of the
operation a file has svn:executable set, then its +x permission should
be set --- and if not, that's a bug.
Matthias Weyh wrote on Mon, 5 Jul 2010 at 15:54 -0000:
> Hello,
>
> I have seen the following behaviour.
>
> added binary file to SVN with property svn:executable
> executable bits are then set on the file
> checked in the file
> added a branch which included the file
> modified the file in TRUNK
> merged the change to branch
> the executable flag on the file is then gone
> however when I commit the merge the executable flag of the file is
again
> being set
>
> Is this the correct behaviour (is the executable flag supposed to be
> missing after a merge - and then added when the file is actually
> committed)?
>
> The behaviour is different for non binary executables (the executable
> bits are always set in this case).
>
> The SVN version I used was 1.6.6 on Ubuntu 10.0.4. The filesystem on
> which the working copy resides is EXT4.
>
> I hope someone can clear this up for me.
>
> Thanks,
> Matthias
>
>
>
Received on 2010-07-07 08:15:48 CEST