托管 Subversion 存储库的计算机已死亡,我正在尝试将备份恢复到另一台计算机上。为了尽量减少客户端的麻烦,我想保留相同的基本 URL,其形式为:
托管在 FreeBSD 机器上;目前我唯一可以用来恢复存储库的机器是Windows。因此,我寻找了基于 Windows 的 Subversion 服务器,并尝试了 VisualSvn 和 CollabNet SubversionEdge,但都遇到了完全相同的问题,如下:
如果我要求他们创建一个名为“svn”的存储库,他们会创建一个可通过以下方式访问的存储库:
如果我要求他们创建一个名为“/”或没有名称的存储库,他们只会给出一条错误消息,指出该名称无效。
如何使用这些产品之一(或其他一些 Windows svn 服务器)创建一个存储库,该存储库仅通过“/svn”而不是“/svn/somethingelse”进行访问?
最佳答案
您可能必须(惊呼!)手动配置它。为此,您可能必须使用 CollabNet 的 Subversion Edge。 VisualSVN 更易于使用,但会覆盖您在 Apache 配置中所做的任何更改,除非您获得专业版。
其实很简单。在 Apache 中配置 Subversion 有两种方法:
方法#1:使用父目录
<Location /svn>
DAV svn
SVNParentPath /opt/repos
....
</Location>
当您使用此方法时,/opt/repos
下的所有 Subversion 存储库将在 Subversion 下 /svn
目录。大多数自动化系统都使用此方法,因为它为您提供了一种仅使用单个 Apache 配置来配置多个存储库的简单方法。
如果您的 Apache 服务器是 http://servername
,并且您有一个颠覆存储库 svn
下/opt/repos/svn
,该存储库的 URL 将为 http://servername/svn/svn
。优点是如果您想要另一个 Subversion 存储库,您只需将其添加到 /opt/repos
即可。目录,一切都已配置。
方法#2:配置每个目录
<Location /svn>
DAV svn
SVNPath /opt/repos/svn
....
</Location>
这允许您每次配置一个且仅一个 Subversion 存储库。对于每个<Location ...>
。但是,这种方式允许您指定根目录。在这种情况下,您的 URL 将为 http://servername/svn
。正如我所说,您必须自己修改 Apache 设置,但这并不困难。 Subversion manual有您需要的信息。
如果这是 Linux/Unix,文件将位于 /etc/httpd
下。会有一个conf
包含基本目录 httpd.conf
文件和名为 conf.d
的第二个目录包含 subversion.conf
或svn.conf
包含这些更改的文件。
Linux 上的 Collabnet 位于 /opt/collabnet/etc/conf
下或类似的东西。我不知道它在 Windows 上的位置,但需要更改的文件将具有 *.conf
后缀,并且会相当短。
关于svn - 创建一个 svn 存储库作为 https ://servername/svn in Windows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682129/