3

我有一个在共享主机 linux 帐户上运行的 apache svn 服务器。

症状是我可以使用 PuTTY 连接到托管 svn 的服务器,但 TortoiseSVN 存储库浏览器无法连接。

我试过svn,svn+ssh,

如果我只尝试 svn,我会得到:

E730060:无法连接到 URL 'svn://50.97.138.99:36901 /test' 的存储库 svn:E730060:无法连接到主机 '50.97.138.99':连接尝试失败,因为连接方没有正确一段时间后响应,或建立连接失败,因为连接的主机没有响应。

如果我尝试 svn+ssh,我会反复提示输入密码,最终不得不多次取消 pwd 对话框,错误是:

无法连接到位于 URL 'svn+ssh://wren.arvixe.com' 的存储库 为了更好地调试连接问题,请在 Subversion 配置文件的 [tunnels] 部分中从 ssh 中删除 -q 选项。网络连接意外关闭

我已经整整两天都在做这件事,用谷歌搜索我的心,开始变得神志不清。

谢谢你的帮助。我很乐意提供更多细节/做实验等。我不知道任何人想要开始的细节,如果最初没有足够的细节,很抱歉。

4

1 回答 1

3

关于如何访问您的存储库似乎有些混乱。svn+ssh://如果没有人设置,您不能简单地浏览。有人设置了吗?

我很惊讶您可以通过 SSH(使用 PuTTY)登录服务器,因为它是共享托管服务器。这通常是不允许的。大多数共享主机站点不允许 shell 访问。

您在开场白中提到了apache svn 服务器。然后,您同时尝试svn://svn+ssh://。设置 Subversion 服务器和访问 Subversion有四种不同的方法:

  • 使用 Apache httpd 作为服务器。为此,您需要正确配置和编译 Apache httpd。您需要几个Apache 插件,例如mod_dav_svn.somod_dav.so. 你有这个设置吗?如果你这样做,你需要访问你的存储库,http://而不是svn://你显示的。
  • 用作svnserve服务器。这很容易设置。如您所见,您可以访问您的存储库svn://。有人配置svnserve并运行它吗?
  • 在 ssh 上使用 svnserve。这使用, 但与Unix 文件访问svnserve集成并可以使用。ssh这设置起来非常非常棘手,而且我看到很少有人实际使用它。每个用户在访问存储库时都会启动自己的svnserve进程。存储库可以直接访问它,您必须设置个人帐户以防止任何 shell 访问。否则用户可以直接操作存储库。
  • 使用直接文件访问在共享存储库时强烈建议不要这样做,因为必须授予所有用户对存储库的直接读/写访问权限。

问题是,如果不知道如何在您的系统上设置 Subversion,就无法帮助您。您是否创建了存储库?如果是这样,您是否启动了svnserve访问它的进程?其他人是否在该系统上设置了您的 Subversion 存储库?如果其他人设置了存储库,您必须从他们那里获得有关如何访问它的确切说明。

如果您是设置存储库的人,您是设置了 Apache 还是设置了 svnserve?如果你有 setup svnserve,你是使用默认端口 3690,还是设置另一个端口来使用?你能确定这个端口是否被你的防火墙阻止了吗?您可以使用telenet命令尝试直接访问端口:

C> 远程登录 50.97.138.99 3690

如果您无法连接,您将看到“无法连接到远程主机”消息,这意味着要么svnserve没有运行,要么您的防火墙阻止了该端口。由于您可以登录服务器,因此请尝试登录服务器并直接访问该存储库:

$ svn 日志 svn://localhost

如果您可以访问 repo,则说明您已运行 svnserve,但您的防火墙阻止了它。如果你不能访问svnserve,你可能没有运行它。

试试看,看看你会得到什么。

于 2012-08-06T03:13:35.860 回答