You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Matthew Willis <mw...@ecornell.com> on 2006/02/01 22:18:44 UTC
Problem with ._ files on Mac OS X and SVN Autoversioning on
Hello.
I'm hoping the list can help me with an issue we're currently having.
The scenario:
Server: Mac OS X Server 10.4.3, Subversion 1.3.0 with Apache 2.2.0
and APR 1.2.2, all built from source. FSFS repository, sitting on
Adic StorNext/Apple Xsan filesystem.
To enable easier access for some content developers who must work
through SSL VPNs, I recently enabled SVN Autoversioning.
The Mac OS X users can mount the WebDAV share just fine, and their
changes are committed successfully.
However, since Mac OS X doesn't think the WebDAV server can handle
xattr information, it creates ._ files on the WebDAV share, and these
are dutifully added to the repository.
The problem then appears when a Mac OS X user using standard
Subversion (rather than the WebDAV share) attempts to update their
working copy.
They receive errors such as
svn: Can't copy 'assets/48/final/.svn/tmp/text-base/._.DS_Store.svn-
base' to 'assets/48/final/._.DS_Store.tmp': No such file or directory
I've read the threads on the developer list regarding resource forks,
non-HFS+ filesystems, ._ files, and xattrs, but this I didn't see
this particular scenario mentioned.
Does anyone have a suggesstion as to how to prevent this problem? Are
commit hooks invoked when using autoversioning? If so, could I create
a hook that would silently neglect to commit the ._ files?
Thanks
-lilmatt
Re: Problem with ._ files on Mac OS X and SVN Autoversioning on
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Feb 1, 2006, at 23:18, Matthew Willis wrote:
> To enable easier access for some content developers who must work
> through SSL VPNs, I recently enabled SVN Autoversioning.
>
> The Mac OS X users can mount the WebDAV share just fine, and their
> changes are committed successfully.
> However, since Mac OS X doesn't think the WebDAV server can handle
> xattr information, it creates ._ files on the WebDAV share, and
> these are dutifully added to the repository.
> The problem then appears when a Mac OS X user using standard
> Subversion (rather than the WebDAV share) attempts to update their
> working copy.
> They receive errors such as
> svn: Can't copy 'assets/48/final/.svn/tmp/text-base/._.DS_Store.svn-
> base' to 'assets/48/final/._.DS_Store.tmp': No such file or directory
I've never tried to use auto-versioning yet, but this sounds pretty
awful. Not that it's at all unexpected, given how Mac OS X works.
> I've read the threads on the developer list regarding resource
> forks, non-HFS+ filesystems, ._ files, and xattrs, but this I
> didn't see this particular scenario mentioned.
>
> Does anyone have a suggesstion as to how to prevent this problem?
You must not write these ._ files to the repository. You must teach
OS X not to write these files there; I know of no way to do that,
however. You may want to open a bug in Apple's bug reporting system [1].
I think the ._ files will only be created if the file has a resource
fork, or, under Tiger, extended attributes. So do not create files
with resource forks or add extended attributes to them. If your
applications automatically do so, you should first save them to a
local volume, strip this extra information [2], then copy it to the
Subversion WebDAV volume.
The .DS_Store files are another matter. They're created by the Finder
to store column-size and -order information and icon position and
that kind of thing. I don't think those belong in the repository
either, but I know of no way to prevent the Finder from creating
them. Perhaps an alternative file manager, like Path Finder, might
work better. Or perhaps a pre-commit hook, about which I'll talk more
below, would suffice.
I can't understand why there would be a ._.DS_Store file as in your
error message, since .DS_Store files should be data-fork-only...
> Are commit hooks invoked when using autoversioning?
Yes.
> If so, could I create a hook that would silently neglect to commit
> the ._ files?
No. A commit cannot [3] change a transaction. It can only reject a
commit if it doesn't meet whatever requirements you define. So you
could at least prevent people from committing ._ and .DS_Store files,
and output an error message which refers people to a web page
explaining how to avoid the ._ files, for example. Er... the message
would, of course, not be displayed by a client just using the auto-
versioning WebDAV mount... the user would probably see the OS's
normal error message that the volume couldn't be written to. That
could be annoying / confusing.
[1] http://bugreport.apple.com
[2] I use the attached "killres" shell script when I want to remove a
file's resource fork. I don't know if it works perfectly in all
cases, but it works well enough for me. Xcode must be installed for
this script to work.
[3] It technically can, but definitely should not, because it will
screw up the client's working copy, which will think it is up to date
when in fact it is not. There's a tiny chance that just excluding ._
files might not be a catastrophe, but I wouldn't want to try it either.
Re: Problem with ._ files on Mac OS X and SVN Autoversioning on
Posted by Robert Sesek <rs...@iris-studios.com>.
Another solution could be to use svn:ignore and set it to be ._*
and .DS_Store to prevent the files from being committed.
I tested it out and it appears to work fairly well.
- Robert
On Feb 7, 2006, at 12:57 PM, Stephen Davis wrote:
> On Feb 1, 2006, at 2:18 PM, Matthew Willis wrote:
>
>> Hello.
>> I'm hoping the list can help me with an issue we're currently having.
>>
>> The scenario:
>> Server: Mac OS X Server 10.4.3, Subversion 1.3.0 with Apache 2.2.0
>> and APR 1.2.2, all built from source. FSFS repository, sitting on
>> Adic StorNext/Apple Xsan filesystem.
>>
>> To enable easier access for some content developers who must work
>> through SSL VPNs, I recently enabled SVN Autoversioning.
>>
>> The Mac OS X users can mount the WebDAV share just fine, and their
>> changes are committed successfully.
>> However, since Mac OS X doesn't think the WebDAV server can handle
>> xattr information, it creates ._ files on the WebDAV share, and
>> these are dutifully added to the repository.
>> The problem then appears when a Mac OS X user using standard
>> Subversion (rather than the WebDAV share) attempts to update their
>> working copy.
>> They receive errors such as
>> svn: Can't copy 'assets/48/final/.svn/tmp/text-
>> base/._.DS_Store.svn-base' to 'assets/48/final/._.DS_Store.tmp':
>> No such file or directory
>>
>> I've read the threads on the developer list regarding resource
>> forks, non-HFS+ filesystems, ._ files, and xattrs, but this I
>> didn't see this particular scenario mentioned.
>>
>> Does anyone have a suggesstion as to how to prevent this problem?
>> Are commit hooks invoked when using autoversioning? If so, could I
>> create a hook that would silently neglect to commit the ._ files?
>
> If the only extended attribute files (._XXX) are being written for
> the corresponding Finder .DS_Store files, I believe you can set a
> hidden pref in the Finder which will prevent it from
> writing .DS_Store files to remote volumes. There is a shareware
> (?) system pref pane called Tinker Tool which will let you set this
> pref in the Finder. If you set this on all the client machines,
> that should prevent the Finder from writing .DS_Store files onto
> the autoversioning WebDAV volumes.
>
> Caveat: I haven't used this feature myself but a friend of mind has
> for SMB volumes mounted from his PC and he says it works great. It
> *should* apply to WebDAV volumes as well.
>
> hth,
> stephen
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>
Robert Sesek
Email: rsesek@iris-studios.com
www.iris-studios.com
Re: Problem with ._ files on Mac OS X and SVN Autoversioning on
Posted by Stephen Davis <su...@soundgeek.org>.
On Feb 1, 2006, at 2:18 PM, Matthew Willis wrote:
> Hello.
> I'm hoping the list can help me with an issue we're currently having.
>
> The scenario:
> Server: Mac OS X Server 10.4.3, Subversion 1.3.0 with Apache 2.2.0
> and APR 1.2.2, all built from source. FSFS repository, sitting on
> Adic StorNext/Apple Xsan filesystem.
>
> To enable easier access for some content developers who must work
> through SSL VPNs, I recently enabled SVN Autoversioning.
>
> The Mac OS X users can mount the WebDAV share just fine, and their
> changes are committed successfully.
> However, since Mac OS X doesn't think the WebDAV server can handle
> xattr information, it creates ._ files on the WebDAV share, and
> these are dutifully added to the repository.
> The problem then appears when a Mac OS X user using standard
> Subversion (rather than the WebDAV share) attempts to update their
> working copy.
> They receive errors such as
> svn: Can't copy 'assets/48/final/.svn/tmp/text-base/._.DS_Store.svn-
> base' to 'assets/48/final/._.DS_Store.tmp': No such file or directory
>
> I've read the threads on the developer list regarding resource
> forks, non-HFS+ filesystems, ._ files, and xattrs, but this I
> didn't see this particular scenario mentioned.
>
> Does anyone have a suggesstion as to how to prevent this problem?
> Are commit hooks invoked when using autoversioning? If so, could I
> create a hook that would silently neglect to commit the ._ files?
If the only extended attribute files (._XXX) are being written for
the corresponding Finder .DS_Store files, I believe you can set a
hidden pref in the Finder which will prevent it from
writing .DS_Store files to remote volumes. There is a shareware (?)
system pref pane called Tinker Tool which will let you set this pref
in the Finder. If you set this on all the client machines, that
should prevent the Finder from writing .DS_Store files onto the
autoversioning WebDAV volumes.
Caveat: I haven't used this feature myself but a friend of mind has
for SMB volumes mounted from his PC and he says it works great. It
*should* apply to WebDAV volumes as well.
hth,
stephen
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org