0

我在 Linux 服务器中使用 hgweb.cgi cgi 脚本设置了 http 服务器。我在服务器中建立了一个 mercurial 存储库。我可以毫无问题地从 Windows 机器克隆存储库。我可以在任何浏览器中查看服务器。我可以从我的本地主机克隆存储库:(服务器)

hg clone http:// localhost /hg/proj

完美运行。但是当我尝试访问另一台 Linux 机器上的服务器时,我收到了以下错误消息:

hg clone http://myhgserver/hg/proj

中止:HTTP 错误 404:条件被拦截

我在 apache2 Web 服务器上的 error_log 文件中找不到任何错误消息。

首先,我怀疑我在客户端使用的是旧版本的 hg (1.4)。我的服务器端是 hg 2.6.3。
然后我绑在我的主目录中安装最新的mercurial(我没有系统目录的权限)

我使用“make local”命令在本地安装 mercurial 包。

./hg --version Mercurial分布式SCM(版本3.0+4-75aaae8ad660+20140613)

克隆命令给出了同样的错误:abort: HTTP Error 404: Condition Intercepted

我已经度过了几乎一整天,现在已经是半夜了,仍然找不到任何答案。

其他人见过这样的问题吗?

建民

4

1 回答 1

0

经过一夜的睡眠,我的问题得到了解决。基本上, hg 程序缺少将主机名解析为 IP 地址的能力。由于我的服务器和客户端计算机在同一个 LAN 上,因此没有连接或防火墙问题。

我可以毫无问题地从我的客户端 PING 到我的服务器。我可以运行主机命令:host myhgserver,它将为您提供完整的 IP 地址和完全限定的域名。如果我使用 IP 地址而不是主机短名称,那么 hg 可以正常工作。

我认为需要在 hg 客户端程序中添加几行代码,以便它可以从别名中找到服务器。

于 2014-06-14T14:23:40.390 回答