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...@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
> > 
> > 
> > 
> 
> 
> 

Reply via email to