SVN 连接问题:无法连接目标机器,因为它主动拒绝了连接

4

我想在我的本地机器上安装svn服务器。我已经安装了CollabNetSubversion-server-1.8.4-1-Win32。 创建仓库:svnadmin create myrepo。我的配置文件如下:

[general]
anon-access = read
auth-access = write
# password-db = passwdle.
# authz-db = authz
# groups-db = groups
realm = khris
# hooks-env = hooks-env
[sasl]
# use-sasl = true
# min-encryption = 0
# max-encryption = 256

我已经安装了Tortoise SVN,创建了一个名为myclientrepo的文件夹,并尝试使用命令Checkout。设置仓库的Url为:svn://localhost/myrepo。我收到了如下信息:

 Unable to connect to a repository at URL 'svn://localhost/myrepo'
 Can't connect to host 'localhost': No connection could be made because the target machine actively  refused it.

我该如何修复这个问题?

2
确保服务器进程已启动,正在所需的端口和主机上进行监听,并且防火墙规则已添加。 - Charles
@khris 你能解决这个问题吗? - Montag451
1个回答

3

有两个问题:

  • 你运行了svnserve吗?这是svn://协议的Subversion服务器。
  • 是否有东西阻止了端口3690?这是svnserve默认使用的端口。确保你的Windows防火墙没有开启并且路由器没有阻止该端口。

还有一件事:你的配置方式:

anon-access = read
auth-access = write

这意味着匿名用户只能读取,而您需要登录系统才能获得读写权限。

然而,您也可以:

# password-db = passwd
# authz-db = authz
# groups-db = groups

所有的注释都被注释掉了,这意味着您没有授权数据库允许用户登录到您的Subversion存储库,以便能够提交更改。

最简单的方法是在password-db前面删除#。 在此配置文件所在的存储库内,有一个名为passed的文件。 您可以使用该文件来配置您的用户和密码。 相关说明在该文件中。


如果我们不指定anon-access和auth-access参数会发生什么?在我的情况下,每个人都可以通过svn://path命令访问repo。我没有在启动脚本中定义任何访问方法。这是如何发生的? - Montag451
1
svnserve 的默认工作方式是允许匿名用户只读访问,授权用户可读写访问。然而,如果您没有以某种方式指定授权用户,则没有人可以获得读写访问权限。 - David W.
谢谢回复。如果我想将授权决策传递给Redmine怎么办?我的意思是,我希望repo dirs由Redmine的项目用户设置进行授权。这个设置已经在我们旧服务器的独立Redmine 1.2.1 + CollabnetSVN 1.6.6配置中存在。现在我正在尝试将其迁移到Bitnami Redmine 2.5堆栈。我使用svnadmin dump/create/load命令复制了repo,但访问设置没有被复制。我应该使用“svnadmin hotcopy”吗?如果我通过conf文件手动设置访问权限,以后如何从Redmine控制它们? - Montag451
我对Redmine的用户设置和权限控制了解不够,不清楚其工作原理。我相信它支持LDAP(http://www.redmine.org/projects/redmine/wiki/redmineldap)。如果您可以使用LDAP,那么使用Apache httpd与Subversion并通过LDAP访问是非常常见的。您也可以通过SASL和svnserve来实现这一点(http://michaelcamden.me/?p=27)。 - David W.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接