Ubuntu – SVN check out to samba directory

sambasvnUbuntu

I'm trying to svn co to a directory on Ubuntu, shared via samba, to OS X, but I get the following error (in OS X).

svn: In directory 'site/product/tests'
svn: Can't open file 'site/product/tests/.svn/tmp/text-base/._base.py.svn-base': No such file or directory

My smb.conf file includes the following changes:

unix extensions = no
browseable = yes
public = yes
writable = yes
delete readonly =  yes
create mask = 0775
directory mask = 0775
valid users = %S
read only = no

The checkout works fine locally (on the Ubuntu machine).

What am I missing?

More detail:

Later inspection showed that the svn error couldn't find the file with 3, then 2 underscores:

.___init__.py.svn-base

Whereas listing the directory in OS X showed 2, then 2 underscores:

__init__.py.svn-base

And listing the same directory in a successful checkout on Ubuntu shows nothing (because it's a temporary directory?)

I've tried the mangled = no setting in share settings, to no effect.

Best Answer

So, to clarify, you get the error message when running svn co on OSX under the mounted share?

Have you examined the file and directory referred to by the error message? Offhand I'd guess your Samba configuration is mangling that name, which is why it doesn't appear on the OSX mount. If this is the case, and the file ._base.py.svn-base exists in that directory, you won't see it from the OSX side but you will from the Ubuntu side. Instead you might see a file with "___" (three underscores) as its extension.

Samba mangles names by default, so you turn name mangling off by setting this in your smb.conf (I believe it's a global option, but it might be per-share):

mangled names = no

Once you've added that to the configuration, restart Samba, remount the share on OSX, and check the directory again. If this is the correct diagnosis you should now see the file.