Hi,

we're trying to set up the following config:

http://svnserver/svn/parentpathtest     
                                                 |- repo1
                                                 |- repo2
                                                 \- repo3

The internal users of the project are supposed to be able to access all three 
repositories, while a bunch of external users are supposed to be able to access 
only repo2. We've been trying to achieve this with the following config:

<Location /svn/parentpathtest>
  DAV         svn
  SVNParentPath     /subversion/parentpathtest
  AuthType    Basic
  AuthName    "Repository /svn/parentpathtest"
  Require     ldap-group CN=pr_parent,OU=Groups,DC=sub,DC=example,DC=com
</Location>

<Location /svn/parentpathtest/repo2>
  DAV         svn
  SVNPath     /subversion/parentpathtest/repo2
  AuthType    Basic
  AuthName    "Repository /svn/parentpathtest/repo2"
  Require     ldap-group CN=pr_parent_ext,OU=Groups,DC=sub,DC=example,DC=com
</Location>

According to http://httpd.apache.org/docs/current/sections.html#mergin , this 
should be possible, with the latter <Location> overwriting the former. The 
intended config is much larger, with about 100 repos under parentpathtest and 
about 20 location-Tags with extended permissions and the project having 
permission to add new repositories on their own, so just going the route with 
fully specifying all locations with just SVNPath would be inconvenient.

Unfortunately, this seems to cause some weird doubling of a path component:

ulja2852@er00483p:~/tmp/parentpathtest/repo2$ svn co 
http://svn/svn/parentpathtest/repo2/module_template/trunk/
Authentication realm: <http://svn:80> Repository /svn/parentpathtest/repo2
Password for 'xxxx':
svn: '/svn/parentpathtest/repo2/repo2/!svn/vcc/default' path not found

This happens in various combinations of trailing slashes in URL or config (some 
cause to match the main Location instead).

I tried to find out what happened with Wireshark (follow tcp stream, cleaned 
up/anonymized the output with <xxx>):

-----------------------------------------------------
OPTIONS /svn/parentpathtest/repo2/module_template/trunk HTTP/1.1
User-Agent: SVN/1.6.12 (r955767) neon/0.29.3
Keep-Alive: 
Connection: TE, Keep-Alive
TE: trailers
Host: svn
Content-Type: text/xml
Accept-Encoding: gzip
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops
Content-Length: 104
Accept-Encoding: gzip
Authorization: Basic <xxx>=

<?xml version="1.0" encoding="utf-8"?><D:options 
xmlns:D="DAV:"><D:activity-collection-set/></D:options>



HTTP/1.1 200 OK
Date: Thu, 24 Mar 2011 14:50:14 GMT
Server: Apache/2.2.15 (Linux/SUSE)
DAV: 1,2
DAV: version-control,checkout,working-resource
DAV: merge,baseline,activity,version-controlled-collection
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops
DAV: http://subversion.tigris.org/xmlns/dav/svn/partial-replay
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
DAV: <http://apache.org/dav/propset/fs/1>
MS-Author-Via: DAV
Allow: 
OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,CHECKOUT
Content-Length: 210
Keep-Alive: timeout=150, max=99
Connection: Keep-Alive
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<D:options-response xmlns:D="DAV:">
<D:activity-collection-set><D:href>/svn/parentpathtest/repo2/repo2/!svn/act/</D:href></D:activity-collection-set></D:options-response>



PROPFIND /svn/parentpathtest/repo2/module_template/trunk HTTP/1.1
User-Agent: SVN/1.6.12 (r955767) neon/0.29.3
Connection: TE
TE: trailers
Host: svn
Content-Type: text/xml
Accept-Encoding: gzip
Depth: 0
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops
Content-Length: 300
Accept-Encoding: gzip
Authorization: Basic <xxx>=

<?xml version="1.0" encoding="utf-8"?><propfind 
xmlns="DAV:"><prop><version-controlled-configuration 
xmlns="DAV:"/><resourcetype xmlns="DAV:"/><baseline-relative-path 
xmlns="http://subversion.tigris.org/xmlns/dav/"/><repository-uuid 
xmlns="http://subversion.tigris.org/xmlns/dav/"/></prop></propfind>


HTTP/1.1 207 Multi-Status
Date: Thu, 24 Mar 2011 14:50:14 GMT
Server: Apache/2.2.15 (Linux/SUSE)
Content-Length: 756
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:" 
xmlns:ns1="http://subversion.tigris.org/xmlns/dav/"; xmlns:ns0="DAV:">
<D:response xmlns:lp1="DAV:" 
xmlns:lp3="http://subversion.tigris.org/xmlns/dav/";>
<D:href>/svn/parentpathtest/repo2/module_template/trunk/</D:href>
<D:propstat>
<D:prop>
<lp1:version-controlled-configuration><D:href>/svn/parentpathtest/repo2/repo2/!svn/vcc/default</D:href></lp1:version-controlled-configuration>
<lp1:resourcetype><D:collection/></lp1:resourcetype>
<lp3:baseline-relative-path>module_template/trunk</lp3:baseline-relative-path>
<lp3:repository-uuid>85958a0a-5186-11e0-b1cd-c1c5333de36d</lp3:repository-uuid>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>



PROPFIND /svn/parentpathtest/repo2/repo2/!svn/vcc/default HTTP/1.1
User-Agent: SVN/1.6.12 (r955767) neon/0.29.3
Connection: TE
TE: trailers
Host: svn
Content-Type: text/xml
Accept-Encoding: gzip
Depth: 0
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops
Content-Length: 111
Accept-Encoding: gzip
Authorization: Basic <xxx>=

<?xml version="1.0" encoding="utf-8"?><propfind xmlns="DAV:"><prop><checked-in 
xmlns="DAV:"/></prop></propfind>



HTTP/1.1 404 Not Found
Date: Thu, 24 Mar 2011 14:50:14 GMT
Server: Apache/2.2.15 (Linux/SUSE)
Vary: accept-language,accept-charset
Accept-Ranges: bytes
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
Content-Language: en

1e

<?xml version="1.0" encoding="

af

ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml"; lang="

e

en" xml:lang="

13

en">
<head>
<title>

38

Object not found!</title>
<link rev="made" href="mailto:

11f

<xxxx>" />
<style type="text/css"><!--/*--><![CDATA[/*><!--*/ 
    body { color: #000000; background-color: #FFFFFF; }
    a:link { color: #0000CC; }
    p, address {margin-left: 3em;}
    span {font-size: smaller;}
/*]]>*/--></style>
</head>

<body>
<h1>

1b

Object not found!</h1>
<p>


39



    The requested URL was not found on this server.

  

57



    If you entered the URL manually please check your
    spelling and try again.

  

2





9

</p>
<p>


48

If you think this is a server error, please contact
the <a href="mailto:

37

<xxxx>">webmaster</a>.


11


</p>

<h2>Error 

21

404</h2>
<address>
  <a href="/">

10

svn</a><br />
  

9


  <span>

21

Thu Mar 24 15:50:14 2011<br />
  

3d

Apache/2.2.15 (Linux/SUSE)</span>
</address>
</body>
</html>


1




0



-----------------------------------------------------

It seems something doubles the repo2 component of the path, and the something 
is server-side.

Client is running svn-1.6.12, server is running svn-1.6.11.

What am I doing wrong?

Best regards

Ullrich Jans

-- 
Ullrich Jans, Specialist, IT-A
Phone: +49 9131 7701-6627, mailto:ullrich.j...@elektrobit.com 
Fax: +49 9131 7701-6333, www.elektrobit.com

Elektrobit Automotive GmbH, Am Wolfsmantel 46, 91058 Erlangen, Germany
Managing Directors: Otto Fößel, Jarkko Sairanen
Register Court Fürth HRB 4886 



----------------------------------------------------------------
Please note: This e-mail may contain confidential information
intended solely for the addressee. If you have received this
e-mail in error, please do not disclose it to anyone, notify
the sender promptly, and delete the message from your system.
Thank you.

Reply via email to