[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Adding a no-op LOCK to mod_dav_svn

From: Greg Stein <gstein_at_lyra.org>
Date: 2003-01-04 12:37:22 CET

On Fri, Jan 03, 2003 at 07:36:26PM -0800, Justin Erenkrantz wrote:
> --On Friday, January 3, 2003 5:54 PM -0600 Karl Fogel
> <kfogel@newton.ch.collab.net> wrote:
> > objected to, is the proposal that we deliberately misimplement a
> > part of the DAV standard.
> The strategy that I've considered is doing a shared hash table/list
> of LOCKed resources across all httpd's. That gets us complete
> compliance with the DAV spec. DAV specifically allows locks to
> disappear at any time for any reason - a server restart can toss
> locks - there is no requirement on persistence. Therefore, a shared
> memory hash table (or something like that) isn't a mis-implementation
> of the DAV spec.

Correct. This would be totally fine.

> My point with the 'no-op lock' phrase was that it never hits the SVN
> backend


Per my previous note, I think that some state will need to be recorded
somewhere, but yes: that doesn't have to be in libsvn_{repos,fs}. It
probably would be in mod_dav_svn (or at least mod_dav_svn would know about
it). Could be quite reasonable to create a generic locking provider and have
various backends refer to that rather than imp their own.

> Granted, this interim solution wouldn't bode well for a repository
> that has activity via ra_svn *and* ra_dav, but I don't consider that
> a big deal. I'm not sure that ra_svn's protocol could even handle
> locking, and I'm still not sure that ra_local should honor locking.

If a change is made via any means, then the lock should be auto-expired [and
the etag would change].

> > Maybe the MacOS X client shouldn't be locking when it doesn't need
> > to? But I don't know what their justification was, or how open they
> > would be to persuasion. Have you asked them?
> A fair number of other legitimate DAV clients do this. It isn't just
> about the MacOS X client, but it's the one I care about. I'm trying
> to solve a problem, not ignore it. =-) -- justin

Right. Clients are all over the map on this stuff. mod_dav is the reference
for servers, but clients don't have such a beast. I told the Nautilus guys
they should use Neon, but they waffled and produced some crappy DAV client
code. Fooey...


Greg Stein, http://www.lyra.org/
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Jan 4 12:36:47 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.