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

Re: WebDAV proxies and locking

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Thu, 30 Jul 2009 17:25:30 -0400

Mark Phippard wrote:
> On Thu, Jul 30, 2009 at 4:59 PM, C. Michael Pilato<cmpilato_at_collab.net> wrote:
>> What would help here is a way for the client tools to (optionally) specify
>> the desired lock token. (Or, if not the client tools, at least some new
>> 'svnsync copy-lock(s)' subcommand.) Is that a sane thing to allow? If not,
>> is there some other remote lock replication approach that we can suggest to
>> folks who need this?
> FWIW, the lack of an ability to use some svnsync option to sync the
> locks also makes svnsync unsuitable for maintaining a backup
> repository or for using svnsync to migrate a repository to a newer
> version. I believe there are lots of users that use svnsync for both
> of these things today. But if a user also uses the lock feature, they
> either cannot use svnsync for this, or must live with the loss of the
> locks.
> Which is a roundabout way of saying I would be in favor of adding
> support for this to svnsync.
> I suppose a user in the WebDAV scenario could then use the
> post-lock/unlock/commit hooks to sync the locks? I am not sure how it
> would scale or be implemented, or whether there are existing ra calls
> that can be used to obtain/write the necessary information. But I
> think it would be the ideal if it could be done.

My hope is that the post-lock hook script on the master could call 'svnsync
lock', which would read the lock info from the master and (duh) copy it to
the slave(s). (There would also be an 'svnsync unlock', of course.) In
terms of the code to support this, yes, the svn_ra_lock() function would
need to grow a way to specify -- for each path you wish to lock -- a desired
lock token.

Not sure really how to transport this information across to the server,
though, in a scalable fashion. Can we change the format of the LOCK
request, or will that info just get lost in the mod_dav -> mod_dav_svn
translation? Do we specify it via a custom request header, or would get
sloppy too fast in multi-path LOCK requests? Do we continue our trend of
ditching WebDAV everywhere it gets in our way and use some sort of custom
POST or PUT request, or is that asking for trouble in some other way?

C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Received on 2009-07-30 23:25:50 CEST

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