You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Peter N. Lundblad" <pe...@famlundblad.se> on 2004/12/13 22:51:14 UTC

Re: svn commit: r12304 - in trunk/notes/locking: . old

On Mon, 13 Dec 2004 sussman@tigris.org wrote:

> Author: sussman
> Date: Mon Dec 13 16:29:44 2004
> New Revision: 12304
>
> Added: trunk/notes/locking/ra_dav_strategy.txt
> Url: http://svn.collab.net/viewcvs/svn/trunk/notes/locking/ra_dav_strategy.txt?view=auto&rev=12304
> ==============================================================================
> --- (empty file)
> +++ trunk/notes/locking/ra_dav_strategy.txt	Mon Dec 13 16:29:44 2004
> @@ -0,0 +1,89 @@
> +    How we will extend ra_dav/mod_dav_svn protocol for locking feature
> +    ==================================================================
> +
> +
> +RA->unlock()
> +
> +     * send http UNLOCK request with 1 custom header:
> +
> +         - force flag
> +
> +     * mod_dav_svn should call authz_read func on path, if it exists.
> +
> +     * generate http UNLOCK response:  success == "204 no content"
> +
> +         - has one custom response header:  creation-date
> +
What's the point of this response header?

> +     * what if older server?  just returns '405 Method not Allowed'.
Those will be translated into SVN_ERR_RA_NOT_IMPLEMENTED.

> +RA->get_commit_editor2()
> +
> +     * stash the incoming hash of tokens.
> +
> +     * every time we do a CHECKOUT or PUT of a file path, look to see
> +       if there's a token available in the hash.  If so, put it in the
> +       If: header of the request.
> +
> +     * send *all* tokens in the If: header of the final MERGE request.
> +
How do you handle keep_locks? Separate UNLOCK requests? Or something extra
for the final MERGE?

Regards,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: r12304 - in trunk/notes/locking: . old

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.

On Mon, 13 Dec 2004, Ben Collins-Sussman wrote:

> >
> >> +     * what if older server?  just returns '405 Method not Allowed'.
> > Those will be translated into SVN_ERR_RA_NOT_IMPLEMENTED.
>
> Um, I suppose so.  Do we already do this throughout ra_dav?  I don't
> think we do...
>
Not everywhere AFAIK, but for the new things added in 1.1 (get-file-revs,
get-locations), we do.
>
> >
> >> +RA->get_commit_editor2()
> >> +
> >> +     * stash the incoming hash of tokens.
> >> +
> >> +     * every time we do a CHECKOUT or PUT of a file path, look to see
> >> +       if there's a token available in the hash.  If so, put it in
> >> the
> >> +       If: header of the request.
> >> +
> >> +     * send *all* tokens in the If: header of the final MERGE
> >> request.
> >> +
> > How do you handle keep_locks? Separate UNLOCK requests? Or something
> > extra
> > for the final MERGE?
> >
>
> That's a question I've not figured out yet.  I guess we should marshall
> the 'keep_locks' boolan to mod_dav_svn, so that it can potentially
> release locks after the commit succeeds.
>
Currently the other "servers" do explicit unlocks. For ra_svn, it is done
on the server side.

//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: r12304 - in trunk/notes/locking: . old

Posted by Ben Collins-Sussman <su...@collab.net>.
On Dec 13, 2004, at 4:51 PM, Peter N. Lundblad wrote:
>>
>> +RA->unlock()
>> +
>> +     * send http UNLOCK request with 1 custom header:
>> +
>> +         - force flag
>> +
>> +     * mod_dav_svn should call authz_read func on path, if it exists.
>> +
>> +     * generate http UNLOCK response:  success == "204 no content"
>> +
>> +         - has one custom response header:  creation-date
>> +
> What's the point of this response header?

Whoops, it's a copy-and-paste bug.  :-)  There's no point.


>
>> +     * what if older server?  just returns '405 Method not Allowed'.
> Those will be translated into SVN_ERR_RA_NOT_IMPLEMENTED.

Um, I suppose so.  Do we already do this throughout ra_dav?  I don't 
think we do...


>
>> +RA->get_commit_editor2()
>> +
>> +     * stash the incoming hash of tokens.
>> +
>> +     * every time we do a CHECKOUT or PUT of a file path, look to see
>> +       if there's a token available in the hash.  If so, put it in 
>> the
>> +       If: header of the request.
>> +
>> +     * send *all* tokens in the If: header of the final MERGE 
>> request.
>> +
> How do you handle keep_locks? Separate UNLOCK requests? Or something 
> extra
> for the final MERGE?
>

That's a question I've not figured out yet.  I guess we should marshall 
the 'keep_locks' boolan to mod_dav_svn, so that it can potentially 
release locks after the commit succeeds.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org