在Windows中创建一个svn存储库作为https:// servername / svn?

时间:2015-02-23 19:49:19

标签: svn visualsvn-server collabnet subversion-edge

托管Subversion存储库的计算机已经死亡,我正在尝试将备份还原到另一台计算机上。为了最大限度地减少客户端的麻烦,我希望保留相同的基本URL,其格式如下:

https://servername/svn

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

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

https://servername/svn/svn

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

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

2 个答案:

答案 0 :(得分:2)

您可能必须(喘气!) 手动 对其进行配置。要做到这一点,您可能必须使用CollabNet的Subversion Edge。 VisualSVN更易于使用,但会覆盖您在Apache配置中所做的任何更改,除非您获得Pro版本。

实际上非常简单。有两种方法可以在Apache中配置Subversion:

方式#1:使用父目录

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

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

如果您的Apache服务器是http://servername,并且svn下有一个subversion存储库/opt/repos/svn,那么该存储库的网址将为http://servername/svn/svn。优点是如果你想要另一个Subversion repo,你可以简单地将它添加到/opt/repos目录,并且它都已配置完毕。

方式#2:配置每个目录

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

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

如果这是Linux / Unix,则文件将在/etc/httpd下。将有一个包含基本conf文件的httpd.conf目录和一个名为conf.d的第二个目录,其中包含包含这些更改的subversion.confsvn.conf文件。< / p>

使用Linux上的Collabnet,它位于/opt/collabnet/etc/conf之下或类似的东西。我不知道它放在Windows上的哪个位置,但需要更改的文件将带有*.conf后缀,并且会相当短。

答案 1 :(得分:1)

使用VisualSVN Server 3.5或更高版本。 Starting with version 3.5, it is possible to customize the URL prefix

在VisualSVN Server 3.4及更早版本中,存储库的URL始终显示为 https://myserver / svn / myrepository 。但现在可以将网址调整为 https://myserver / repos / myrepository 或删除前缀 https://myserver/myrepository