Hi Michael,
Craig and I made a first pass at adding the subversion wiki page
information to the jdo site on Friday. It needs work, but it's a
start. I was planning to continue that process, but if you would like
to do it, it's fine with me. Whatever.
On Windows (NTFS), executable is on by default for new files. The
problem we had is that cygwin svn used that information to set
svn:executable on the files. I put information on how to change Windows
file permissions in the last paragraph of the subversion wiki page. You
check a box so that the default permissions get propogated to all child
directories of the directory whose permissions you modify.
-- Michelle
Michael Bouschen wrote:
Hi Michelle,
Thank you for blazing the trail, Michael. I have added this
information to the Wiki page.
You're welcome.
At some point we need to synchronize the wiki text with the
description in site/xdocs/svn.xml. I volunteered to have a look at
this file, but I haven't done yet. Today we cannot remove the
subversion page from the wiki, because the one on the JDO incubator
page is not yet updated.
Another question about file permissions under windows:
I checked out a new workspace today and figured out that all the files
are executable. I think that has nothing to do with subversion,
because the property svn:executable is not set for all these files.
Instead it might have to do with how windows sets file permissions for
file created during the svn checkout. Do you have any idea?
Regards Michael
-- Michelle
Michael Bouschen wrote:
Hi,
some more remarks about the Subversion Win32 version:
- The windows version stores configuration files under
C:\Documents and Settings\<user>\Application Data\Subversion.
The cygwin version stores these files under ~/.subversion.
After switching to the windows version I could not check in, because
of an authorization failure when accessing svn.apache.org. I could
fix this by copying the file servers and the directory auth to the
windows location.
- The windows version uses the backslash as the path separator when
displaying file names, e.g. in the output of svn status. You cannot
just copy and paste this file name to another svn command (e.g. svn
diff) when running from within a bash (the the bash requires
slashes). You need to enclose the file name into double quotes.
Regards Michael
Hi Michelle,
thanks for the info, this is very helpful!
I agree we should skip the svn:executable flag from the files in
the repository. What about the script createdb.sh from
tck20/test/sql/derby? I think shell scripts should be executable.
However, I think we do not need this script anymore, so let's
remove it.
I installed the Subversion 1.2.3 Win32 binaries as you suggested
and it works fine. I decided to remove the subversion component
from my cvgwin installation instead of renaming the svn executable.
I'm not sure whether svn comes with dlls which also need to be
renamed.
Would it make sense to add your findings to our SubVersion wiki
page http://wiki.apache.org/jdo/SubversionRepository ? I hope to
get more contributors and committers and they would run into the
same problem if they use svn from cygwin.
Regards Michael
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!