svn+ssh:重写存储库名称

svn+ssh:重写存储库名称,svn,Svn,我正在实现一个托管Subversion存储库的服务。我需要每个存储库都有一个前端名称,这是服务的使用者将使用的名称,还有一个后端路径,这是存储库实际位于服务器文件系统上的位置。名称到路径的映射存储在数据库中。存储库是通过ssh访问的 例如,URL为svn的回购协议+ssh://server/my-repo 实际上可能存在于服务器的文件系统中,地址为/srv/repos/某个随机字符串 当Subversion客户端访问svn时+ssh://server/my-repo,它只是通过ssh在远程服务器

我正在实现一个托管Subversion存储库的服务。我需要每个存储库都有一个前端名称,这是服务的使用者将使用的名称,还有一个后端路径,这是存储库实际位于服务器文件系统上的位置。名称到路径的映射存储在数据库中。存储库是通过ssh访问的

例如,URL为svn的回购协议+ssh://server/my-repo 实际上可能存在于服务器的文件系统中,地址为/srv/repos/某个随机字符串

当Subversion客户端访问svn时+ssh://server/my-repo,它只是通过ssh在远程服务器上运行一个命令-这个命令是svnserve-tunnel或类似的命令。客户端和服务器上的svnserve进程使用进行通信,存储库的名称嵌入到协议中——在本例中,存储库的名称是my repo。svnserve然后在当前目录中查找我的回购协议,并提供它

问题是我的repo是前端名称,它不同于后端路径,在本例中是/srv/repos/某个随机字符串。通过强制ssh运行svnserve-root=/srv/repos-tunnel,查看/srv/repos而不是当前目录很容易,但是将我的repo映射到某个随机字符串似乎需要在客户端和服务器之间的通信中进行重写

我的问题是:是否可以使用libsvn来解析这些通信并进行适当的重写?有关于从哪里开始的建议吗