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