Search code examples
apachesvn-repository

Apache SVN commands only work with full path to repo


Situation:

I'm currently setting up a new Ubuntu Server (22.04) as new test-environment for our websites with Apache subversion. When trying to do anything with a repository on the new server I always have to use the full path to the repo (The repositories are located under /var/local/svn on both servers).

Here are all commands I've tried, with the results:

  • svn info svn://[NewSVNserver]/TestRepo - Doesn't work
  • svn info svn://[NewSVNserver]/svn/TestRepo - Doesn't work
  • svn info svn://[NewSVNserver]/var/local/svn/TestRepo - Works
  • svn info svn://[OldSVNserver]/TestRepo - Works
  • svn info svn://[OldSVNserver]/svn/TestRepo - Doesn't work
  • svn info svn://[OldSVNserver]/var/local/svn/TestRepo - Doesn't work

Above, where is says 'Doesn't work', the following error message is thrown:

svn: E170013: Unable to connect to a repository at URL »svn://[SVNServer]/[Path]«
svn: E210005: No repository found in 'svn://[SVNServer]/[Path]'

What I've tried:

I'm sure it's some kind of configuration. As the above seems to apply to all repositories (including new ones) at the corresponding server, I assume it has to be some server-based configuration and not repository-based.

I've already checked, compared and adjusted the configurations on the new SVNServer, which are listed below, to the ones of the old SVNServer:

  • /etc/apache2/apache2.conf
  • /etc/apache2/mods-available/dav_svn.conf

I've also tried adding the following from dav_svn.conf to apache2.conf:

<Location /svn>
  DAV svn
  SVNParentPath /var/local/svn
</Location>

(After restarting Apache2 with service apache2 restart): apachectl configtest returns Syntax OK but it sadly doesn't change anything


The specific question:

What configuration does one have to make, in order to change the path to the repo in svn-commands?


Solution

  • So, I wasn't actively looking for a solution to this anymore, but today I stumbled upon this:

    In this question about renaming repositories, the answer also states how to make the path to the repo obsolete. Basically, when one serves the repos via the 'svnserve -r / -d' command, one simply has to add the path to the folder in which all the repositories lie..

    This did it for me:

    svnserve -r /path/to/your/repos -d

    After that I could comfortably use the repo via TortoiseSVN on a Windows client without having to write out the full path to the repo every time.