6.0.0-beta13
4/11/26

On this page I try to collect everything on Resource Locking.

[[toc]]

+++ The idea

[http://lists.horde.org/archives/dev/Week-of-Mon-20050606/018056.html I noticed] that there is currently no way horde can tell you that anyone is already editing an item when you try to edit an item (notes, wiki, etc). [http://lists.horde.org/archives/dev/Week-of-Mon-20050404/017589.html Kevin Myer] asked the same question a few weeks ago on the dev list, but none is working on this. So I decided to solve this problem.

+++ Two ways

There are (a least) two ways how this can be done. Locking The easy one is to lock an item for a certain time when someone starts to edit it. If someone else tryes to edit it, horde will deny this and tell him / her to wait. The contra of this is that only one person can edit one item at one time (not very good for a groupware). Try to merge The better way would be that horde tryes to merge the changes, similar to cvs. If changes cannot be merged, horde will tell the user. I think this is what I'll try.

+++ New Work

Since I needed a mechanism to lock resources for full WebDAV functionality I have written a Horde_Lock subsystem. Hopefully it will be in CVS HEAD soon. This subsystem is capable of locking arbitrary resources identified by URI. The locks support timeouts and exclusive vs. shared semantics.

+++ TODO

  • write Text_Patch to use diff's from Text_Diff

  • write Horde_Resource_Locking to to get, set, delete and purge locks (backend will be datatree)

  • add Method to merge Data

  • do test implementaion in nag

+++ Timeline

  • June 6th, 2005 Idea for this project

  • June 24th, 2005 add TODO, start coding

  • May 5th, 2008 Project ownership moved to Ben Klang

+++ Contact

Ben Klang ben@alkaloid.net