I'd like to use davfs2 to interact with my svn repo. One of the things I'd like to do is have executable files. But, nothing mounted has the execute bit. Despite them all having svn:executable. Is this just not supported? Could it be?
I'm using 1.2.0, and have things mounted as ro,exec,nolocks,nosuid
Unfortunately there is no 'executable' property in the WebDAV standard. But there is an extension from the people that created the Apache WebDAV module. This 'executable' property belongs to XML namespace http://apache.org/dav/props/. davfs2 uses this property.
I do not know what svn uses. If they have their own extension, davfs2 can not recognise it. You might log the response to a PROPFIND request, to see, whether svn provides an executable property and what is it's namespace.
Even if there is no executable property send by the server, or davfs2 can not recognise it, you may still use chmod to make files executable. This will only be of local effect, but if you open this file, this change will be stored in the cache.
Ah. svn sets executable in the http://subversion.tigris.org/xmlns/svn/ namespace for executable files. (It's unset normally). I'll suggest to them that the dav export also include the http://apache.org/dav/props/ executable property.
I'm not sure that its reasonable to expect davfs2 to deal with svn's properties.
It is a real problem, to handle very different server behaviour and map it to the same unix file system. davfs2 is not yet very good at this.
Did you try to set the execute bit in the mounted file system? mount.davfs will try in this case to store the execute property (the apache one) on the server. Often servers will also store properties they do not know of.
I assume the apache namespace could be dropped. The executable property is, as far as I know, the only property defined in this namespace, whereas the svn namespace has a lot of properties. But there will be a long period where both have to be handled.
Log in to post a comment.