- From: Geoffrey M Clemm <geoffrey.clemm@us.ibm.com>
- Date: Tue, 24 Jun 2008 11:18:31 -0400
- To: <M.Jung@dlr.de>
- Cc: ietf-dav-versioning@w3.org, ietf-dav-versioning-request@w3.org
- Message-ID: <OF064409EF.9EAD2B02-ON85257472.00530701-85257472.005417C8@us.ibm.com>
A given file can only have one checkout in a given workspace. So if user A checks out a file in the server-side workspace, an attempt by user B to checkout that same file in that same workspace will fail (with an "already checked out" error). If you want to use a single server-side workspace for all the users, you would not register the checkout on the server. Instead, the client for a given user would GET the files that the user wants, and remember what versions of those files it downloaded.. When the user tries to "checkin" a change, the client would attempt to checkout the file, and retrieve the CHECKED_OUT version property. If the CHECKED_OUT version was the same as the one the client originally downloaded, the client can just PUT the new content, and CHECKIN. If the CHECKED_OUT version is different, the client would have to notify the user that a "merge conflict" has occurred, peform a merge of the users version with the CHECKED_OUT version, and then checkin the results of the merge. Cheers, Geoff ietf-dav-versioning-request@w3.org wrote on 06/24/2008 07:11:02 AM: > > Hello, > > I want to allow simultaneous editing of resources by multiple users with > WebDAV/DeltaV. For that, I use a ServerSide-Workspace for every user. > The user can "check out" a file in his private workspace and work on it. > After that, the user can "check in" all of his files with the DeltaV > activity feature. Now I am looking for a standard "serverside"-way to > detect conflicts when both users try to commit their changes on the same > file. Is there any standard way to detect these conflicts with > WebDAV/DeltaV on serverside? > > My idea was (like in Subversion/mod_dav_svn), that the server keeps > track of the revisions, that are in the private workspace of the user, > to detect conflicts. > > Here you can see a sequence diagram that illustrates the operations. > > http://www.haifischmade.de/apache2-default/seqConWebDAV.jpg > > User A and user B check out the file Foo. The server keeps track that > they both checked out version 1 of the file Foo. Now both users start to > edit the file in their own workspace. Then user A finishes editing and > checks in his workspace (ActivityUserA). Now the server increments the > version of file Foo up to 2. Now user B wants to check in his file, but > the server recognizes that UserB has changed the file based on version 1 > and so the server rejects the check in. > > Is this the right way?
Received on Tuesday, 24 June 2008 15:19:17 UTC