4

当我尝试连接到某个远程服务器上的 SVN 存储库时,我收到错误消息。

无法连接到存储库 URL 'svn://path/to/my/repository/'。无法连接到主机。由于目标机器主动拒绝,无法建立连接。

有人可以帮助我吗?

4

2 回答 2

9

Subversion 使用几种方法与 Subversion 服务器通信:

  • 使用 httpd
  • 使用 svnserve
  • 直接文件访问。

所以,我们需要知道的第一件事是您如何与您的 Subversion 存储库通信?你设置了吗?如果你这样做了,你svnserve是为了充当服务器而运行吗?或者,您是否将 Apache httpd Web 服务器配置为 Subversion 存储库服务器?如果不是你设置的,是谁设置的?

让我们来看看基础知识:

文件访问

您使用命令在 /usr/share/svn/repository 中创建了 Subversion 存储库svnadmin create。你没有做任何其他事情。在这种情况下,您可以通过以下方式访问您的存储库:

$ svn co file:///usr/share/svn/repository

请注意,URL 协议是file://而不是svn://.

SVNSERVE 访问

假设您的存储库位于机器alpha上,而alpha上只有一个存储库

URL 的格式为:

$ svn co svn://alpha

请注意,协议是svn://,协议之后的第一件事是机器名称。这svnserve是一个用于 Subversion 存储库的简单、易于设置和快速的服务器。即使我可以使用它,我也会使用它,file://因为我不必每次都提供完整的路径名。

如果您设置了自己的 Subversion 存储库,则可以使用svnserve来运行它。它默认使用端口 3690,并且只有一个svnserve实例可以在使用该端口的机器上运行(您可以更改端口,但它很乱,我现在不想进入)。

要使用 svnserve 服务器,您需要做一些非常小的事情:

  • 设置svnserve.conf文件:在您的存储库下是一个名为conf. 在这个目录中有一个名为svnserve.conf. 您需要找到以开头的行passed并删除该行前面的磅符号(又名锐器或八角形):它在第 20 行附近。

只是改变:

### password-db = passwd

到:

password-db = passwd
  • **设置passwd file:** In the same directory as thesvnserve.conffile is another file called密码. Edit this file, to include an account for you. There's two examples in the file forharry andsally`。为你创造一个。这将是您的用户名(无空格)和密码。当您在 Subversion 中签出或提交文件时,您将使用它。

http访问

您可以设置一个 Apache httpd Web 服务器(Internet 上最流行的 Web 服务器)也用作 Subversion 服务器。这是一个复杂的过程,我不会在这里讨论。但是,如果有人为您设置了它,则该 URL 将分为几个部分:

  • 协议http://声明
  • 服务器的名称
  • 仓库使用的虚拟目录(可以有多个仓库)
  • 您要签出的目录。

假设这台机器名为alpha,并且您想从foo项目的存储库中签出:

$ svn co http://alpha/foo/trunk

我强烈建议您编辑您的问题并包含更多详细信息。例如,您的 Subversion 存储库位于何处?它在您当前的系统上吗?您是否设置了 Subversion 存储库,还是管理员为您设置了?向我们展示您收到的确切命令和错误消息。

否则,您的问题可能会被关闭。有关更多信息,请参阅 Stackoverflow常见问题解答

于 2012-06-14T23:03:15.693 回答
4

实际上我的 SVN 服务没有运行。所以由于这个服务器没有响应。

于 2012-06-14T14:12:27.357 回答