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