Hi Michelle,

+1 

And thanks for running this down.

I don't believe that the JDO project ships anything for which the executable flag needs to be on. We use maven for executing stuff, and if maven doesn't care if the -x bit is on, we should not either.

So I agree that the svn:executable flag is just a distraction and we should remove it from the project. And keep from adding it in future.

Craig

On Aug 31, 2005, at 4:20 PM, Michelle Caisse wrote:

Hi,

There has been discussion here about the Windows subversion client automatically assigning the executable property to non-executable files. I believe I have a solution for this.  I also suggest that we clean up the executable properties currently in the repository.

BACKGROUND

Subversion carries executable information in the built-in property called svn:executable.  This property, unlike others,  may be present or absent, but it has no value.  You can add it or delete it, but but you cannot change it.

In theory, subversion ignores Windows file permissions; by default svn:executable is not set. In fact, cygwin svn acts like Unix svn and determines the svn:executable property based on file permissions..

If you create a file via the cygwin command line,  by default it is executable only if the filename ends with .bat, .com or .exe*, or if its content starts with #!.  [That's what the doc says, but even in these cases I get -x.] If you create a file via a Windows tool by default its Windows permissions are executable by all and cygwin interprets the Unix-style permissions this way as well.  If the file is executable by all, cygwin svn sets the svn:executable property on the file.

RECOMMENDED ACTIONS

(1) I suggest that we run
    svn propdel -R svn:executable .
from jdo to remove the svn:executable property from all of the files in all the projects in the repository and check in the cleansed files.

(2) I suggest that Windows/cygwin users who don't want to have to think about using svn propdel or chmod use a non-cygwin version of svn.  I installed the Subversion 1.2.3 Win32 binaries from the link at the bottom of http://subversion.tigris.org/project_packages.html.  It seems to work fine.  You will have to add the svn.exe location to your Windows PATH variable, of course.  You will also need to rename the svn in your cygwin install to something else because when svn is invoked from a cygwin window, the cygwin version is found even if your cygwin/bin directory is later on the path.

Alternatively, Windows users could set file permissions in Windows Explorer. (Right-click on the top-level folder & select Properties. Select the Security tab. Click Advanced. Remove all instances of Read & Execute from the Permission Entries. Click "Reset permissions on all child objects and enable propogations of inheritable permissions". Click Apply. OK. OK.) You would have to do this again when you do a clean checkout. 
Comments?

-- Michelle


Craig Russell

Architect, Sun Java Enterprise System http://java.sun.com/products/jdo

408 276-5638 mailto:[EMAIL PROTECTED]

P.S. A good JDO? O, Gasp!


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to