- From: Clemm, Geoff <gclemm@rational.com>
- Date: Thu, 21 Jun 2001 18:21:13 -0400
- To: "'DeltaV (E-mail)'" <ietf-dav-versioning@w3.org>
Stefan and I were interpreting "unique", when you said: > There is only one 'in-place-checkout' now, so perhaps we > should insist that any "invisible" in-place-checkout's should > be unique. as saying that there could only be one "invisible" checkout from a given version-controlled resource. Sorry if we misunderstood what you were proposing. As indicated in the previous message, though, it would not be acceptable to replace the current checkout-in-place feature with this invisible checkout-in-place feature, and since "invisible checkout-in-place" is basically identical to the working-resource option except for the "update vcr" functionality, it makes more sense to discuss this in the context of the working-resource feature, and not the checkout-in-place feature. Cheers, Geoff -----Original Message----- From: John Hall [mailto:johnhall@evergo.net] Sent: Thursday, June 21, 2001 5:37 PM To: 'Clemm, Geoff'; 'DeltaV (E-mail)' Subject: RE: A simpler response ... RE: Working Resource Issues ... Assume the server wants to implement multiple concurrent checkouts. User1: CHECKOUT /foo.txt <invisible> Response: OK Location: /invisible?file_id=4301&ver_id=7549 User2: CHECKOUT /foo.txt <invisible> Response: OK Location: /invisible?file_id=4301&ver_id=8051 User3: CHECKOUT /foo.txt <invisible> Response: OK Location: /invisible?file_id=4301&ver_id=9051 User1: PUT /invisible?file_id=4301&ver_id=7549 User2: DELETE /invisible?file_id=4301&ver_id=9051 User2: PUT /invisible?file_id=4301&ver_id=8051 User2: CHECKIN /invisible?file_id=4301&ver_id=8051 Response OK // I win! User1: CHECKIN /invisible?file_id=4301&ver_id=7549 Response: Conflict <cannot-modify-version-controlled-content/> ======================================================== At that point you have a number of places you can go. The simplest for User1 is to vow to use a lock next time, but in this case (to be polite): GET /foo.txt Diff _local_copy_with_working_copy Edit _local_copy_with_working_copy PUT /invisible?file_id=4301&ver_id=7549 CHECKOUT /foo.txt CHECKIN /invisible?file_id=4301&ver_id=7549 ========= OR if not polite ============== CHECKOUT /foo.txt CHECKIN /invisible?file_id=4301&ver_id=7549 ---------------------------- Is that clear how multiple checkouts of the same version could work? Basically, you have the same mechanism you had with your WORKING-RESOURCE feature to allow multiple checkouts (the Location header). Now, ALLOWING mutliple checkouts yeilds the problem of conflict / merge resolution. The simpliest policy is to make the user resolve it. > -----Original Message----- > From: ietf-dav-versioning-request@w3.org > [mailto:ietf-dav-versioning-request@w3.org] On Behalf Of Clemm, Geoff > Sent: Thursday, June 21, 2001 1:58 PM > To: 'DeltaV (E-mail)' > Subject: RE: A simpler response ... RE: Working Resource Issues ... > > > I don't see where you addressed Stefan's question. > Allowing multiple checkouts of the same version is > a key use case. Limiting this to a single checkout > is supported in an interoperable way by allowing the > server to set the DAV:checkout-fork property to DAV:forbidden. > > Cheers, > Geoff > > -----Original Message----- > From: John Hall [mailto:johnhall@evergo.net] > Sent: Thursday, June 21, 2001 12:19 PM > To: 'Stefan Eissing'; 'DeltaV (E-mail)' > Subject: A simpler response ... RE: Working Resource Issues ... > > > There is only one 'in-place-checkout' now, so perhaps we > should insist that any "invisible" in-place-checkout's should > be unique. Therefore, the only difference is the visibility > of the work in progress. > > The only reason I made them different URL's is to preserve > the semantics where if you PUT on a resource and then GET you > are supposed to GET what you just PUT. Therefore, for the > PUT's to be invisible it must be a different URL. > > This isn't much different than lock resource, GET, modifing > the local copy, PUT, unlock. > > > > > -----Original Message----- > > From: ietf-dav-versioning-request@w3.org > > [mailto:ietf-dav-versioning-request@w3.org] On Behalf Of > > Stefan Eissing > > Sent: Thursday, June 21, 2001 7:20 AM > > To: John Hall; 'DeltaV (E-mail)' > > Subject: AW: Working Resource Issues ... > > > > > > John, > > > > if I understand your proposal correctly, one user could not > > have two working resources of the same version resource, > > since there is only a single URL to access it. Correct? > > > > Wouldn't that be a major drawback for a versioning repository? > > > > Stefan > > > > > Von: ietf-dav-versioning-request@w3.org > > > [mailto:ietf-dav-versioning-request@w3.org]Im Auftrag von > John Hall > > > > > > "If you remain calm while everyone else is panicking, then you > > > probably don't understand the situation." -- old Naval saying. > > > > > > It appears that some of the long discussion on this topic has been > > > prompted by completely different understandings of what a > > > "WORKING-RESOURCE" is and should mean. > > > > > > I just thought it was a bit-bucket where the user could store his > > > state until he was finished. Check out VCR, get bit > bucket, modify > > > bit bucket, Check In. The critical difference between > > > Check-Out-In-Place and Check-Out-Working-Version was the > > visibility of > > > the bit bucket to other users. In-Place, they can see it. > > > Working-Version, they can't. > > > > > > I've also mentioned that I'm concerned with 3rd party > > emulation. The > > > 3rd party has a 'working version', and that is exactly how they > > > implemented the concept. > > > > > > That IS NOT what this spec defines. In the post > conditions for 9.3 > > > create-working-resource-from-checked-in-version the spec > > states that > > > "... the version-controlled resource remains checked-in." > > > > > > That is why you have seen two operations when I've only > > seen one, and > > > need an UPDATE or MERGE. Meanwhile, I'm going "of COURSE > > the VCR is > > > checked out. I got a successful return on my CHECKOUT > > didn't I?" I > > > think you should create a new verb (MKWORKING), personally. > > > > > > So how about leaving the WORKING-RESOURCE definition as-is > > and modify > > > the CHECKOUT-IN-PLACE feature to make invisibility to > other users a > > > (REQUIRED) option? I think you will have to finesse a > much smaller > > > number of issues if you do that. Since it is required, > it doesn't > > > raise the issue of client interoperability. It is new > > functionality; > > > you can't do what I need to do with the spec defined as > is. And by > > > moving it down there you don't confuse the complex > 'package' issues > > > Geoff raised. You put it in the basic package, and you > don't have > > > clients trying to figure out why they have WORKING-RESOURCE > > provided > > > but not UPDATE or MERGE. > > > > > > 4.1.3 DAV:checkout-invisible > > > > > > Normally, edits made on a resource while checked out are > visible to > > > other users. If checkout-invisible is specified, however, > > other users > > > will only see the last checked-in version. A client is > > encouraged to > > > see this feature as "lite" version of WORKING-RESOURCE > which leaves > > > the VCR in the checked-out state. > > > > > > 4.2 CHECKOUT Marshalling: > > > > > > If the element checkout-invisible is present, the response MUST > > > include a Location header. > > > > > > 4.6: Additional PUT / PROPPATCH semantics. > > > > > > If a Location header was returned with the CHECKOUT, the > > URL specified > > > in the Location header MUST be used for PUT and PROPPATCH > requests. > > > Otherwise, the server will return > > > cannot-modify-version-controlled-content. > > > > > > 4.7: Additional DELETE semantics. > > > > > > A delete on the URL returned by a CHECKOUT Location header > > will undo > > > the CHECKOUT which created it. > > > > > > > > > > > > > > >
Received on Thursday, 21 June 2001 18:15:33 UTC