SVN:远程访问不起作用

时间:2012-01-22 17:11:46

标签: apache svn remote-access

我在我的电脑上安装了subversion和apache。我可以使用followinf url

访问我的存储库
http://localhost/svn/repos/

现在我希望我的小组的其他成员访问我放在我的存储库中的项目文件。因为这是我第一次使用svn,我寻找解决方案,我想我有点迷失了。

我在路由器中读到有关端口转发的信息,因此我打开了路由器接口。我进入了路由器配置的NAT / PAT部分,并添加了一条具有以下特征的新规则:

Application: svn
External port:3690
Internal port:80
protocol : TCP
equipment: myPC

并选中“激活”选项。但我想我错过了一些东西。 我在一篇文章中读到,要验证远程访问是否正常,我必须转到

svn://83.200.108.71

虽然它不起作用。 “无法连接..” 有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

等等......您可以通过http://访问您的存储库吗?为什么不让其他人使用http://访问存储库?

不要对路由器做任何事情。不要捣乱港口。 Apache httpd正在为您的存储库提供良好的端口80服务。告诉您的用户只需通过http://<machineName>/svn/repos访问您的存储库。这就是它的全部内容。

svn://是一种与http://完全不同的协议。端口3690恰好是svn://的默认端口,但这并不意味着如果您在那里重新路由http://协议,一切都会正常工作。

大多数时候,首先使用Subversion的人设置svnserve服务器而不是Apache httpd,因为它比使用Apache http更容易。以下是设置存储库以使用svn://的方法:

$ svnadmin create my_repos        #
$ vi my_repos/conf/svnserve.conf  #Need to denop 'password-db=passwd' line
$ vi my_repos/conf/passwd         #Need to setup user accounts
$ svnserve -r my_repos -d

就是这样。现在,您的用户可以通过svn://<machineName>访问存储库。

虽然svnserve比Apache(更快)更简单,更容易,但有很多理由在svnserve上使用Apache httpd:

  • 端口80可能未被网络阻止而端口3690可能被阻止
  • 您可以让Apache httpd使用LDAP进行身份验证(也可以允许Windows Active Directory身份验证)
  • Apache httpd可以为多个存储库提供服务,而svnserve只能为端口3690上的单个存储库提供服务。