[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Unexpected behaviour with SVNPath/SVNParentPath mixture

From: <Ullrich.Jans_at_elektrobit.com>
Date: Thu, 24 Mar 2011 15:12:17 +0000

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.jans_at_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.
Received on 2011-03-24 16:12:52 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.