Oh damn, sigh.  I'm completely wrong- subversion doesn't
serve a 404 on the OPTIONS request, even for a resource
that's not present in HEAD.  It serves a 200 response,
and only several PROPFIND's later do we actually serve
a showstopping 404 on a checkout for a non-existent resource.

That complicates this situation significantly, sorry.
I don't see an immediate way to satisfy the ASF's use
case given the current svn support for redirects revolves
around the initial OPTIONS response not PROPFINDS.





>________________________________
> From: Joe Schaefer <joe_schae...@yahoo.com>
>To: Greg Stein <gst...@gmail.com> 
>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>Sent: Monday, February 4, 2013 1:30 PM
>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
> 
>
>Please correct me if I'm mistaken, but my impression
>from looking at server logs is that there are certain
>cases where a 404 response to an initial OPTIONS request
>is a showstopper (like a checkout or update operation),
>but other times the 404 response is not a problem (like
>for operations involving pegrevs).  If we can identify
>this distinction and flag it somehow in the initial request
>so that in the first case we ask for a non-showstopper
>response from the server if available, that's all I need
>to support the ASF's use case in my module.  Providing
>additional version info in the query string can refine
>the server response my httpd module would provide, but
>that aspect is not essential to service the ASF's needs.
>
>
>
>
>
>
>>________________________________
>> From: Joe Schaefer <joe_schae...@yahoo.com>
>>To: Greg Stein <gst...@gmail.com> 
>>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>>Sent: Monday, February 4, 2013 12:26 PM
>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>> 
>>
>>How about a "prefer redirect" flag somewhere in
>>the OPTIONS request?  Anything to signal to the
>>server that the request wants something better
>>than a 404 response it possible.
>>
>>
>>
>>
>>
>>>________________________________
>>> From: Greg Stein <gst...@gmail.com>
>>>To: Joe Schaefer <joe_schae...@yahoo.com> 
>>>Cc: dev@subversion.apache.org 
>>>Sent: Monday, February 4, 2013 7:44 AM
>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>> 
>>>
>>>Yeah... I think the best we can do in the OPTIONS is to hint. It can't 
>>>really be more than a hint, since a connection can be used for N various 
>>>operations.
>>>What might be more ideal is to respect redirects after that initial OPTIONS. 
>>>Then your module could just wait until it knows the right data.
>>>It's not an easy problem. If we get a 301, then we should definitely rewrite 
>>>the working copy to use the new URL. But... is a 301 correct, if "old" 
>>>revisions still work? ....
>>>Cheers,
>>>-g
>>>On Feb 3, 2013 2:33 PM, "Joe Schaefer" <joe_schae...@yahoo.com> wrote:
>>>
>>>We don't actually need the subversion server
>>>>to do anything useful with the query string
>>>>on an OPTIONS request.  We just need it as
>>>>a hint for http server admins, combined with
>>>>a (global) configuration option to tell our
>>>>working copies to autoswitch when they see a
>>>>301 on the initial OPTIONS response.
>>>>
>>>>
>>>>
>>>>Sorry if this is getting boring.  In no way is
>>>>it essential, but we have significant working copy
>>>>investments in incubating projects that are a pain
>>>>to manage administratively right now whenever a project
>>>>graduates.  Anything along these lines to cut down
>>>>on the human labor aspects would be most welcome.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>________________________________
>>>>> From: Joe Schaefer <joe_schae...@yahoo.com>
>>>>>To: Greg Stein <gst...@gmail.com> 
>>>>>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>>>>>Sent: Sunday, February 3, 2013 1:45 PM
>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>>>> 
>>>>>
>>>>>IOW the easiest way for us to support OPTIONS
>>>>>requests with this module, which would require
>>>>>no code changes to the module I wrote, is for the
>>>>>initial OPTIONS request to hang a ?p=whatever
>>>>>query string onto the request whenever it's dealing
>>>>>with pegrevs.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>________________________________
>>>>>> From: Joe Schaefer <joe_schae...@yahoo.com>
>>>>>>To: Greg Stein <gst...@gmail.com> 
>>>>>>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>>>>>>Sent: Sunday, February 3, 2013 1:04 PM
>>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>>>>> 
>>>>>>
>>>>>>A few urls to fetch to get the basic idea:
>>>>>>
>>>>>>http://svn.apache.org/repos/asf/incubator/openmeetings/trunk
>>>>>>(will redirect)
>>>>>>
>>>>>>http://svn.apache.org/repos/asf/incubator/openmeetings/trunk?p=1400000
>>>>>>(won't redirect)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>________________________________
>>>>>>> From: Joe Schaefer <joe_schae...@yahoo.com>
>>>>>>>To: Greg Stein <gst...@gmail.com> 
>>>>>>>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>>>>>>>Sent: Sunday, February 3, 2013 12:15 PM
>>>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>>>>>> 
>>>>>>>
>>>>>>>The code is here if you are interested (dunno
>>>>>>>if it's publicly accessible or not but I believe
>>>>>>>so).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>https://svn.apache.org/repos/infra/infrastructure/trunk/projects/svn_check_path/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>________________________________
>>>>>>>> From: Joe Schaefer <joe_schae...@yahoo.com>
>>>>>>>>To: Greg Stein <gst...@gmail.com> 
>>>>>>>>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>>>>>>>>Sent: Sunday, February 3, 2013 12:10 PM
>>>>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>>>>>>> 
>>>>>>>>
>>>>>>>>I backed off with the idea of trying to coax
>>>>>>>>new behavior out of svn clients by munging OPTIONS
>>>>>>>>responses, but GET and HEAD are now doing
>>>>>>>>interesting things even with ?p= set.  For our
>>>>>>>>purposes someday it would be nice to just have
>>>>>>>>a graduating podling's checkouts all auto-switch
>>>>>>>>to the moved location.  Whether that's
>>>>>>>>accomplished by augmenting an OPTIONS request
>>>>>>>>with revision details or just using the existing
>>>>>>>>GET/HEAD support or some other method would be
>>>>>>>>just fine with me.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>________________________________
>>>>>>>>> From: Joe Schaefer <joe_schae...@yahoo.com>
>>>>>>>>>To: Greg Stein <gst...@gmail.com> 
>>>>>>>>>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>>>>>>>>>Sent: Saturday, February 2, 2013 2:07 AM
>>>>>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>>>>>>>> 
>>>>>>>>>
>>>>>>>>>The (pegrev) revision is typically available on
>>>>>>>>>the command-line: all I want is for svn to distinguish
>>>>>>>>>between
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>    svn ls foo@1000000
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>and
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>    svn ls foo
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>as far as making redirects pegrev-aware.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>________________________________
>>>>>>>>>> From: Greg Stein <gst...@gmail.com>
>>>>>>>>>>To: Joe Schaefer <joe_schae...@yahoo.com> 
>>>>>>>>>>Cc: dev@subversion.apache.org 
>>>>>>>>>>Sent: Saturday, February 2, 2013 1:53 AM
>>>>>>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>>>>>>>>> 
>>>>>>>>>>
>>>>>>>>>>Oh, and to the second part: the code which sends OPTIONS has no 
>>>>>>>>>>knowledge about the future operations. There is no way to send 
>>>>>>>>>><revision/>, or similar. *Very* disconnected, as in: not even 
>>>>>>>>>>cheesy-hackable.
>>>>>>>>>>Cheers,
>>>>>>>>>>-g
>>>>>>>>>>On Feb 2, 2013 1:49 AM, "Greg Stein" <gst...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>That OPTIONS request is generic, and contains no information about 
>>>>>>>>>>the future operation(s) that will be performed on the connection. It 
>>>>>>>>>>is used for the client to validate and gather information about the 
>>>>>>>>>>server.
>>>>>>>>>>>Cheers,
>>>>>>>>>>>-g
>>>>>>>>>>>On Feb 2, 2013 1:23 AM, "Joe Schaefer" <joe_schae...@yahoo.com> 
>>>>>>>>>>>wrote:
>>>>>>>>>>>
>>>>>>>>>>>So I now see the request body (xml payload)
>>>>>>>>>>>>in the OPTIONS request, but nothing there nor
>>>>>>>>>>>>in the headers tells me about revision numbers.
>>>>>>>>>>>>If I can convince you to add a <revision/> block
>>>>>>>>>>>>to the OPTIONS request body I can handle the rest
>>>>>>>>>>>>from the httpd side.  Obviously this won't help
>>>>>>>>>>>>existing clients, but hey it's a gee-whiz feature
>>>>>>>>>>>>anyhow.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>________________________________
>>>>>>>>>>>>> From: Joe Schaefer <joe_schae...@yahoo.com>
>>>>>>>>>>>>>To: 'Daniel Shahaf' <d...@daniel.shahaf.name>; Bert Huijben 
>>>>>>>>>>>>><b...@qqmail.nl> 
>>>>>>>>>>>>>Cc: "dev@subversion.apache.org" <dev@subversion.apache.org> 
>>>>>>>>>>>>>Sent: Friday, February 1, 2013 9:26 PM
>>>>>>>>>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath rename
>>>>>>>>>>>>> 
>>>>>>>>>>>>>
>>>>>>>>>>>>>So I have this implemented about as well
>>>>>>>>>>>>>as I can with what I know about OPTIONS
>>>>>>>>>>>>>requests that svn generates.  It would
>>>>>>>>>>>>>help if I knew how svn supplies revision
>>>>>>>>>>>>>information in the OPTIONS request headers
>>>>>>>>>>>>>so I can pass that along to the codebase
>>>>>>>>>>>>>instead of always using the youngest rev.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>>________________________________
>>>>>>>>>>>>>> From: 'Daniel Shahaf' <d...@daniel.shahaf.name>
>>>>>>>>>>>>>>To: Bert Huijben <b...@qqmail.nl> 
>>>>>>>>>>>>>>Cc: dev@subversion.apache.org 
>>>>>>>>>>>>>>Sent: Friday, February 1, 2013 3:33 PM
>>>>>>>>>>>>>>Subject: Re: Coniguring 301/302 redirects to track an fspath 
>>>>>>>>>>>>>>rename
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>Bert Huijben wrote on Fri, Feb 01, 2013 at 21:28:10 +0100:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> > -----Original Message-----
>>>>>>>>>>>>>>> > From: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
>>>>>>>>>>>>>>> > Sent: vrijdag 1 februari 2013 19:11
>>>>>>>>>>>>>>> > To: dev@subversion.apache.org
>>>>>>>>>>>>>>> > Subject: Coniguring 301/302 redirects to track an fspath 
>>>>>>>>>>>>>>> > rename
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > Does anyone have an example of how to configure a server to 
>>>>>>>>>>>>>>> > issue
>>>>>>>>>>>>>>> > 301/302 redirects for an fspath that had been renamed?
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > For example we have
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> >     <Location /repos/asf>
>>>>>>>>>>>>>>> >     SVNPath ...
>>>>>>>>>>>>>>> >     </Location>
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > And we'd like to do:
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > 
    # The project was renamed
>>>>>>>>>>>>>>> >     Redirect /repos/asf/openejb 
>>>>>>>>>>>>>>> >https://svn.apache.org/repos/asf/tomee
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > but we're hitting various problems:
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > - The redirect kicks in for historical revisions (prior to 
>>>>>>>>>>>>>>> > the 'svn mv
>>>>>>>>>>>>>>> >   ^/openejb ^/tomee' in r1432805) too, such as:
>>>>>>>>>>>>>>> >  https://svn.apache.org/repos/asf/openejb?p=1400000
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > - A similar configuration failed to kick in during 
>>>>>>>>>>>>>>> > update/checkout of
>>>>>>>>>>>>>>> >   working copy checked out from (a pre-rename revision of) 
>>>>>>>>>>>>>>> >^/openejb:
>>>>>>>>>>>>>>> >   the initial request got matched and redirected, but a 
>>>>>>>>>>>>>>> >subsequent
>>>>>>>>>>>>>>> >   request to /repos/asf/!svn/.../openejb failed to match.
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > Ideally we'd like
 to issue a 301 redirect for requests to /openejb that
>>>>>>>>>>>>>>> > concern r1432805 or later, but leave requests concerning 
>>>>>>>>>>>>>>> > r1432804 or
>>>>>>>>>>>>>>> > earlier untouched.
>>>>>>>>>>>>>>> > 
>>>>>>>>>>>>>>> > (or maybe what we *really* want is a repos-side symlink... 
>>>>>>>>>>>>>>> > but we're
>>>>>>>>>>>>>>> > running 1.7, not 1.9, and we'll appreciate solutions that 
>>>>>>>>>>>>>>> > work within
>>>>>>>>>>>>>>> > that limitation :))
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> We currently only support redirects above the repository level.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Redirections inside would be a completely different feature.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>OK... :(
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Why not just leave a top level folder with some readme?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>Every time a podling graduates from the incubator, we do a rename:
>>>>>>>>>>>>>>   svn mv ^/incubator/flex ^/flex
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>If we can return 301 whenever somebody does 'svn up' in a wc of
>>>>>>>>>>>>>>^/incubator/flex, we'll save many users (2-4 projects every month)
>>>>>>>>>>>>>>having to learn about 'svn relocate'.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I think you
 should be able to redirect the normal webbrowser GETs though, as
>>>>>>>>>>>>>>> I don't think we use those urls from our ra layers. (Or did we 
>>>>>>>>>>>>>>> start using
>>>>>>>>>>>>>>> them for HEAD requests in HTTPv2?)
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>'svn ls $URL@peg' was affected by the redirects I had.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     Bert
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>Thanks,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>Daniel
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>>
>>
>>
>
>

Reply via email to