subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Shahaf <...@daniel.shahaf.name>
Subject Re: Coniguring 301/302 redirects to track an fspath rename
Date Sun, 03 Feb 2013 21:15:45 GMT
I already told you Joe: go over existing callers of svn_ra_open4() and
see what value each of them could provide as the ?p= argument.

checkout will provide NULL (or maybe SVN_INVALID_REVNUM, if we don't
make that mean "HEAD").

cat will provide the operative or peg revision.

update/switch will provide the BASE revision of the update root, or
something like that (compare the "target revision" concept in the
editor).

Someone needs to fill in the rest...



Joe Schaefer wrote on Sun, Feb 03, 2013 at 11:33:30 -0800:
> 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_schaefer@yahoo.com>
> >To: Greg Stein <gstein@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_schaefer@yahoo.com>
> >>To: Greg Stein <gstein@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_schaefer@yahoo.com>
> >>>To: Greg Stein <gstein@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_schaefer@yahoo.com>
> >>>>To: Greg Stein <gstein@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_schaefer@yahoo.com>
> >>>>>To: Greg Stein <gstein@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 <gstein@gmail.com>
> >>>>>>To: Joe Schaefer <joe_schaefer@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" <gstein@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_schaefer@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_schaefer@yahoo.com>
> >>>>>>>>>To: 'Daniel Shahaf' <d.s@daniel.shahaf.name>;
Bert Huijben <bert@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.s@daniel.shahaf.name>
> >>>>>>>>>>To: Bert Huijben <bert@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.s@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
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >
> >

Mime
View raw message