On 17.11.2011 11:40, David Chapman wrote:
On 11/16/2011 11:08 PM, Sergey Skvortsov wrote:
On 16.11.2011 19:56, Stefan Sperling wrote:
On Wed, Nov 16, 2011 at 06:37:39PM +0400, Sergey Skvortsov wrote:
s/"svn update"/"svn commit"/

On 16.11.2011 18:31, Stefan Sperling wrote:
On Wed, Nov 16, 2011 at 02:43:17PM +0400, Sergey Skvortsov wrote:
Configuration for Apache:

<Location /svn>
DAV svn
SVNParentPath /usr/home/svn
SVNListParentPath on
</Location>

<Location /svn/foo>
DAV svn
SVNParentPath /usr/home/svn/foo
SVNListParentPath on
</Location>

[Wed Nov 16 10:32:58 2011] [error] [client 10.10.10.10]
(20014)Internal error: Can't open file
'/usr/home/svn/foo/foo/format': No such file or directory

You are nesting locations. This isn't a valid configuration because it
leads to ambiguity when splitting a URL into the part which is outside
of the repository and the part which is inside the repository.

Why this configuration is not valid?

Before Subversion gets called, Apache HTTPD decides which Location
block gets to handle a request. Subversion has no control over this
decision.
Note that Apache HTTPD looks only at URLs. It has no idea and does
not care
whether or not there is a Subversion repository anywhere within the URL
http://svn.example.com/svn/foo/bar/baz
With your configuration the URL has two possible repositories:
http://svn.example.com/svn/foo
http://svn.example.com/svn/foo/bar
So how is Apache HTTPD supposed to tell which of your Location blocks
should handle requests for the URL
http://svn.example/com/svn/foo/bar/baz?
Should<Location /svn> handle it or should<Location /svn/foo> handle it?

Of course "/svn/foo".

Really? And what if you check out a copy of
http://svn.example.com/svn/foo and create a directory named "bar" in it?

Please, re-read initial example.

"/svn/foo" is not a repo. It is just directory containing repos. And "/svn" too.

You can not checkout "/svn/foo" or "/svn".

Are you expecting Apache or Subversion to notice that this is the path
to another repository and thus ban creation of the new directory?

What if the repository http://svn.example.com/svn/foo already has a
directory named "bar" in it when you first move the child repository
into /svn/foo/bar?

I could go on, but the possibilities for ambiguity are endless. Don't
nest repositories.

Again, there are no nested repositories.

I am talking about broken SVNParentPath behaviour.

--
Sergey Skvortsov
mailto: s...@protey.ru

Reply via email to