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

Re: mod_dav_svn and symbolic links

From: Ryan Schmidt <subversion-2020_at_ryandesign.com>
Date: Thu, 17 Dec 2020 03:59:30 -0600

On Dec 16, 2020, at 13:13, M.Eng. René Schwarz wrote:

> I am using mod_dav_svn with Apache2 in combination with a SVN repository containing symbolic links. When a URL pointing to a symbolic link is accessed, the web server does not follow this link, but provides a text file with the content "link [path to file or directory]".
> I was wondering if there is a possibility to make mod_dav_svn actually not providing this text file but the contents of the linked file directly?
> Background:
> An installer is downloading several files for installation from the repository over the web server whereas the flexibility to specify a certain repository revision via the "!svn/bc/" special syntax is used, without the need for the installer to be aware of the SVN repo itself. For the installer, this address is just an ordinary URL. This worked well for a couple of years, but now symbolic links have been used in the repository which is causing the trouble for the installer now as it gets not the actual file, but the text representation of a symbolic link.

As far as I know, mod_dav_svn does not have this capability.

mod_dav_svn is a server process, and symlinks are a client-side-only feature. The server has no knowledge of symlinks and just stores the files and their properties. The Subversion client stores symlinks in the repository exactly as you're experiencing: as a text file with the contents "link [path to file or directory]" and a property "svn:special" set to the value "*".

In this case, your installer is acting as the Subversion client, so you would have to modify your installer code to get it to notice when a file it's accessing is a symlink and to make it send another request to get the real file from its actual location. If you want to do it right, you should consider that there could of course be multiple levels of symlink indirection, and any of the directories leading up to the file you want could be symlinks.
Received on 2020-12-17 10:59:48 CET

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