subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Sperling <s...@elego.de>
Subject Re: Short-urls impossible with WebDAV Pass Thru
Date Thu, 07 Aug 2014 15:50:14 GMT
On Wed, Aug 06, 2014 at 03:18:25PM -0400, Tyler Winter Mace wrote:
> I am adding a mirror repository, mirroring an http-based repository. That
> repository uses a shortest-possible naming scheme ("<Location />"). For
> example:
>     http://svnhost/repos/trunk/main.c
> 
> Now that I'm trying to mirror it, I find that the mirror doesn't like it. It
> issues this error:
>     SVNMasterURI value must not be a server root
> 
> (It is defined as "http://svnhost/")
> 
> My desire is for all users (not just mirror users but all users) to use as
> short of an SVN url scheme as possible. Is that not possible if we need to
> also mirror the site?
> 
> I had someone on the chat today refer me to a commit log:
> https://svn.apache.org/r1064734
> ... and a bug report ...
> http://subversion.tigris.org/issues/show_bug.cgi?id=3445
> 
> Thanks in advance,
> 
> -Tyler Mace

Hi Tyler,

I've forward your question to C. Mike Pilato, who committed r1064734.

Here's what he's got to say:

[[[
On 08/07/2014 06:49 AM, Stefan Sperling wrote:
> Hey Mike,
> 
> since you made the commit in question: Can you remember why mirroring from
> the server root is not allowed?

Oh geez... the cobwebs...

I honestly don't recall, but I strongly suspect that it has something to
do with how the mirroring filters work.  These things do essentially a
global search-and-replace on the request and response bodies and
headers, transforming strings in requests that look like the path
portions of the master URL into those that match the path portions of
the slave URL; vice-versa in responses.  And the protocol doesn't speak
in terms of fully qualified URLs -- within the bodies, it's just the
path portions.  I recall running into problems when asking the C code to
do a global search and replace of either "" or "/" with something else.  :-)

Now, that check I added might be something we could relax iff the slave
URL's path portion is likewise empty -- meaning you're mapping between
two server roots.  The mirror code does detect the situation where the
search-and-replace would be a noop (because the strings are identical),
and avoids filtering at all in such situations.  Of course, as you know,
having matching path portions here is the *only* safe way of using the
mirroring code at all.  Yet, to my knowledge, we still don't require our
users to set things up that way.

Hope this helps.

-- 
C. Michael Pilato <cmpilato@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development
]]]

Mime
View raw message