You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Matthias Weyh <m....@technisat.de> on 2010/07/05 12:54:57 UTC

merging executable binaries

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

Re: AW: merging executable binaries

Posted by Tyler Colgan <ty...@gmail.com>.
The short explanation for the wrong rev number is that you have to add
840074 to it first. The long explanation can be found at
http://svn.apache.org/repos/asf/subversion/README.

Issue 3475 appears to have been for "svn patch" rather than "svn
merge", but it's more or less the same problem. It looks like this is
the diff that fixed the issue for svn patch:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/patch.c?r1=879495&r2=879496&pathrev=879496
Something similar would probably fix the problem for svn merge as well.

Tyler

On Thu, Jul 8, 2010 at 8:21 AM, Matthias Weyh <m....@technisat.de> wrote:
> It seems that there is already a report present at
> http://subversion.tigris.org/issues/show_bug.cgi?id=3475 for this issue.
> The revision for the fix however seems to not match the revision on
> http://svn.apache.org/repos/asf/.
>
> Can you tell me how to find out what was changed and if the patch is
> already included in one of the later subversion releases?
>
> Thanks,
> Matthias
>
> -----Ursprüngliche Nachricht-----
> Von: Daniel Shahaf [mailto:d.s@daniel.shahaf.name]
> Gesendet: Donnerstag, 8. Juli 2010 10:33
> An: Matthias Weyh
> Cc: users@subversion.apache.org
> Betreff: Re: AW: merging executable binaries
>
> Matthias Weyh wrote on Wed, 7 Jul 2010 at 09:15 -0000:
>> Hello,
>>
>> I have added a command list for reproducing the issue.
>>
>
> Thank you.  It's much easier to understand the situation now.
>
>> Please note the last commit message. At this point the executable flag
>> is missing. It is however recovered on the commit.
>>
>
> I've read the transcript and I agree it's a bug.
>
> Please go ahead and file a bug report at
> http://subversion.tigris.org/issues/,
> so that we don't forget about it.  If you'd like to dive in and help fix
> it,
> that's more than okay :-)
>
>> best regards,
>> Matthias
>>
>
> Daniel
>
>>
>> $ 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@daniel.shahaf.name]
>> Gesendet: Dienstag, 6. Juli 2010 20:35
>> An: Matthias Weyh
>> Cc: users@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
>> >
>> >
>> >
>>
>>
>>
>
>

AW: AW: merging executable binaries

Posted by Matthias Weyh <m....@technisat.de>.
It seems that there is already a report present at
http://subversion.tigris.org/issues/show_bug.cgi?id=3475 for this issue.
The revision for the fix however seems to not match the revision on
http://svn.apache.org/repos/asf/.

Can you tell me how to find out what was changed and if the patch is
already included in one of the later subversion releases?

Thanks,
Matthias

-----Ursprüngliche Nachricht-----
Von: Daniel Shahaf [mailto:d.s@daniel.shahaf.name] 
Gesendet: Donnerstag, 8. Juli 2010 10:33
An: Matthias Weyh
Cc: users@subversion.apache.org
Betreff: Re: AW: merging executable binaries

Matthias Weyh wrote on Wed, 7 Jul 2010 at 09:15 -0000:
> Hello,
> 
> I have added a command list for reproducing the issue.
> 

Thank you.  It's much easier to understand the situation now.

> Please note the last commit message. At this point the executable flag
> is missing. It is however recovered on the commit.
> 

I've read the transcript and I agree it's a bug.

Please go ahead and file a bug report at
http://subversion.tigris.org/issues/, 
so that we don't forget about it.  If you'd like to dive in and help fix
it, 
that's more than okay :-)

> best regards,
> Matthias
> 

Daniel

> 
> $ 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@daniel.shahaf.name] 
> Gesendet: Dienstag, 6. Juli 2010 20:35
> An: Matthias Weyh
> Cc: users@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
> > 
> > 
> > 
> 
> 
> 

Re: AW: merging executable binaries

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Matthias Weyh wrote on Wed, 7 Jul 2010 at 09:15 -0000:
> Hello,
> 
> I have added a command list for reproducing the issue.
> 

Thank you.  It's much easier to understand the situation now.

> Please note the last commit message. At this point the executable flag
> is missing. It is however recovered on the commit.
> 

I've read the transcript and I agree it's a bug.

Please go ahead and file a bug report at http://subversion.tigris.org/issues/, 
so that we don't forget about it.  If you'd like to dive in and help fix it, 
that's more than okay :-)

> best regards,
> Matthias
> 

Daniel

> 
> $ 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@daniel.shahaf.name] 
> Gesendet: Dienstag, 6. Juli 2010 20:35
> An: Matthias Weyh
> Cc: users@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
> > 
> > 
> > 
> 
> 
> 

AW: merging executable binaries

Posted by Matthias Weyh <m....@technisat.de>.
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@daniel.shahaf.name] 
Gesendet: Dienstag, 6. Juli 2010 20:35
An: Matthias Weyh
Cc: users@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
> 
> 
> 

Re: merging executable binaries

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
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
> 
> 
>