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

svn:externals and different access methods (svn: http:)

From: Jarle Jacobsen <jarle.jacobsen_at_gmail.com>
Date: Thu, 8 Mar 2012 08:05:34 +0100

Hi,

we are currently running subversion 1.7.3 and are using svnserve on
the server (windows platform). We are using the distribution from
Collabnet and now we want to switch to using the Subversion Edge
config app and Apache web server. Because we have many users in
different locations and a lot of build scripts/continues integration
jobs, tools and utilities that use subversion we would like to switch
from svn:// to http:// gradually by running both Apache and svnserve
for a short period.

We have several repositories and are using svn:exsternals to link
projects both between repositories and within a repository. All
repositories are on the same server.

Lets say that we have the repositories Repo1 and Repo2 and they are
running on the SrcServer.

Accessing Repo1 will be done using svn://SrcServer/Repo1 or
http://SrcServer/svn/Repo1 (the svn part is from the Location element
created by Subversion Edge in httpd.conf). This works fine.

When we link projects with svn:externals we use relative paths. For
example we could link from a project in Repo1 to Proj1 also in Repo1
using ^/Proj1. This also works fine the URL will be translated to
svn://SrcServer/Repo1/Proj1 or http://SrcServer/svn/Repo1/Proj1.

The problem occurs when we want to link to a project in a different
repository. For example we could link from a project in Repo1 to Proj2
in Repo2 using /Repo2/Proj2. The URL will be translated to
svn://SrcServer/Repo2/Proj2 or http://SrcServer/Repo2/Proj2. The svn:
URL is correct but the http: URL is missing the svn part.

I can see 2 possible solutions to this:
1: Drop using svn: and http: at the same time and add the svn part to
the relative URLs.when switching to http:.
2: hack the generated httpd.conf file and use a Location element
without the svn part.

I don't like any of these solutions. Solution1 means doing a big bang
that will be difficult to handle. I don't know if solution 2 is
possible at all (never used Apache before). The Apache server is
handling more than one application (like viewvc) and moving Subversion
to the root doesn't sound like a good solution.

Is there a way to use relative URLs so that linking between
repositories on the same server will work for this case?

Using the ^ subversion will add the svn part of the URL so it must
know how to decode the different parts of the URL. Is this a bug in
the handling of the / (relative to the root URL of the server) or
should there be a syntax for saying relative to the repository parent
path?

Regards
Jarle Jacobsen
Received on 2012-03-08 08:17:10 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.