2

托管我们的 Subversion 存储库的计算机已经死机,我正在尝试将备份恢复到另一台计算机上。为了尽量减少客户端的麻烦,我想保持相同的基本 URL,其形式为:

https://服务器名/svn

它托管在 FreeBSD 机器上;我目前唯一可以将存储库恢复到的机器是 Windows。所以我寻找了一个基于 Windows 的 Subversion 服务器,并尝试了 VisualSvn 和 CollabNet SubversionEdge,但它们都遇到了完全相同的问题,即:

如果我要求他们创建一个名为“svn”的存储库,他们会创建一个存储库,访问方式如下:

https://服务器名/svn/svn

如果我要求他们创建一个名为“/”的存储库,或者没有名称,他们只会给出一条错误消息,说明这是一个无效的名称。

如何使用这些产品之一(或其他一些 Windows svn 服务器)创建存储库,该存储库仅作为“/svn”而不是“/svn/somethingelse”访问?

4

2 回答 2

2

您可能必须(喘气!)手动配置它。为此,您可能必须使用 CollabNet 的 Subversion Edge。VisualSVN 更易于使用,但会覆盖您在 Apache 配置中所做的任何更改,除非您获得 Pro 版本。

其实很简单。在 Apache 中有两种配置 Subversion 的方法:

方式#1:使用父目录

<Location /svn>
   DAV svn
   SVNParentPath /opt/repos
   ....
</Location>

使用此方法时,所有 Subversion 存储库/opt/repos都将位于 Subversion/svn目录下。大多数自动化系统都使用这种方法,因为它为您提供了一种简单的方法,只需一个 Apache 配置即可配置多个存储库。

如果您的 Apache 服务器是,并且您在下面http://servername有一个 subversion 存储库,那么该存储库的 URL 将是。优点是如果你想要另一个 Subversion 存储库,你可以简单地将它添加到目录中,并且它已经全部配置好了。svn/opt/repos/svnhttp://servername/svn/svn/opt/repos

方式#2:配置每个目录

<Location /svn>
   DAV svn
   SVNPath /opt/repos/svn
   ....
</Location>

这允许您每次配置一个且仅一个 Subversion 存储库。对于每个<Location ...>. 但是,这种方式允许您指定根目录。在这种情况下,您的 URL 将是http://servername/svn. 正如我所说,您必须自己修改 Apache 设置,但这并不难。Subversion 手册包含您需要的信息。

如果这是 Linux/Unix,文件将位于/etc/httpd. 将有一个conf包含基本httpd.conf文件的目录和一个名为或conf.d包含这些更改的文件的第二个目录。subversion.confsvn.conf

使用 Linux 上的 Collabnet,它就在下面/opt/collabnet/etc/conf或类似的地方。我不知道它在 Windows 上的位置,但需要更改的文件会有*.conf后缀,而且会相当短。

于 2015-02-23T20:58:02.360 回答
1

使用 VisualSVN Server 3.5 或更新版本。从 3.5 版开始,可以自定义 URL 前缀

在 VisualSVN Server 3.4 和更早版本中,存储库的 URL 总是看起来像https://myserver /svn /myrepository。但现在可以将 URL 调整为类似于https://myserver /repos /myrepository或删除前缀https://myserver/myrepository

于 2016-01-15T13:44:22.497 回答