[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn:executable is ignored on checkout form Windows to Samba share

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Wed, 28 Nov 2012 22:36:40 +0200

Thorsten Schöning wrote on Wed, Nov 28, 2012 at 18:13:44 +0100:
> Hello,
>
> I have some working copies on Samba shares, Ubuntu 12.04 LTS with all
> updates installed, which are accessed using TortoiseSVN 1.7.10 which
> uses Subversion 1.7.7. Some of those working copies contain executable
> Perl scripts with proper svn:executable defined as *, but depending on
> my Samba configuration the executable bit gets set or not. It only
> gets set if Smaba is configured to force specific permissions
> including the executable bit. If I checkout natively using a
> Subversion client on the shell the executable bits get properly
> applied.
>
> Is the svn:executable property completely ignored on operations which
> are applied using Windows clients? I thought/hoped that Windows just

I think this is the code you're looking for:

 631 /* Tweak the on-disk file according to its properties. */
 632 #ifndef WIN32
 633 if (props && apr_hash_get(props, SVN_PROP_EXECUTABLE, APR_HASH_KEY_STRING))
 634 SVN_ERR(svn_io_set_file_executable(local_abspath, TRUE, FALSE,
 635 scratch_pool));
 636 #endif

What will happen is that, whenever a file is modified (eg, by 'update'
or 'switch'), the Windows client will write a new file and rename(2) it
on top of the old file... resetting the +x bit (to its default value) in
the process.

And that's one of the reasons behind the standard recommendation not to
access a single working copy from multiple systems, especally windows
and non-windows.

> ignores anything regarding svn:executable if it's done to itself but
> Samba could maybe recognize those permissions. This doesn't seem to be
> the case.
>
> If Windows clients ignore applying svn:executable, do you have any
> ideas on how I could configure Samba to just apply it on Perl scripts?

You might try 'revert' or 'cleanup'. But keep in mind that being able
to share a wc across operating systems might not work indefintiely...

> The shares are pretty general and I don't want e.g. CSS files to have
> the executable bit set. The only solution I found was a cron job
> regularly finding and fixing Perl scripts as Samba doesn't seem to
> provide any file type filters.
>
> Thanks for any hints.
>
> Mit freundlichen Grüßen,
>
> Thorsten Schöning
>
> --
> Thorsten Schöning E-Mail:Thorsten.Schoening_at_AM-SoFT.de
> AM-SoFT IT-Systeme http://www.AM-SoFT.de/
>
> Telefon...........05151- 9468- 55
> Fax...............05151- 9468- 88
> Mobil..............0178-8 9468- 04
>
> AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
> AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
>
Received on 2012-11-28 21:37:26 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.