Mercurial hg clone错误 - “abort:error:名称或服务未知”

时间:2010-06-06 21:37:24

标签: linux mercurial clone version-control

我已经为Fedora Linux安装了最新的hg软件包。但是,hg clone报告错误。

hg clone http://localmachine001:8000/ repository

报告:

"abort: error: Name or service not known"

localmachine001是本地网络中的计算机。我可以毫无问题地从我的Linux机器上ping它。我也可以使用相同的http地址并浏览现有代码。但是,hg clone不起作用。

如果我从Macintosh机器执行相同的命令,我可以轻松克隆存储库。

某些互联网资源建议编辑.hgrc文件,并向其添加代理:

[http_proxy]
host=proxy:8080

我试过没有任何成功。此外,我假设在这种情况下不需要代理,因为hg服务器机器在我的本地网络中。

任何人都可以推荐我应该做什么,或者我该如何追踪这个问题?

提前谢谢。

6 个答案:

答案 0 :(得分:4)

以root身份运行hg解决了我的问题。但还是不知道为什么。

答案 1 :(得分:3)

问题是(可能)您的http代理无法:

  1. 解析localmachine
  2. 获取您的(或localmachine)本地IP,即使它可以将“localmachine”解析为正确的本地地址。
  3. 首先,确保您身边没有任何东西(iptables / NAT /防火墙)阻止代理端口上的出口或入口。如果它是root用户,那就是问题 - 从那里开始向后工作。

    还可以想象你的代理正在破坏来自远程HG的响应,足以混淆Mercurial,而不是你的浏览器。在任何一种情况下,如果HG位于本地(localhost / lan)网络上,最好只需绕过代理。

    幸运的是,[http_proxy]指令支持绕过某些主机名的代理,这对于处理NAT同一侧的内容或仅存在于一台机器上的主机(例如通过/ etc解析)是理想的/ hosts。)这样可以避免每次需要更改行为时都必须编辑.hgrc

    请参阅documentation,或者只是让.hgrc看起来像这样:

    [http_proxy]
    host=proxy:8080
    no=localmachine,192.168.1.123,192.168.1.234,...,...
    

    手术指令当然是no。我不确定在指定主机时是否可以使用通配符(我不使用代理功能,因此没有办法测试那个..而且没有在文档中指定)。您可以尝试使用它,例如192.168.1.*并告知我们是否也有效。

    无论如何,对于最终懒惰(或相当匆忙的人),上面链接的文档的相关部分:

    http_proxy
    
    Used to access web-based Mercurial repositories through a HTTP proxy.
    
    host
        Host name and (optional) port of the proxy server, for example "myproxy:8000".
    no
        Optional. Comma-separated list of host names that should bypass the proxy.
    passwd
        Optional. Password to authenticate with at the proxy server.
    user
        Optional. User name to authenticate with at the proxy server.
    

答案 2 :(得分:2)

当我的DNS名称服务器设置未配置时,这发生在我身上。尝试ping远程存储库主机并尝试ping一些众所周知的主机,例如google.com。如果它不起作用,请修复DNS设置。

答案 3 :(得分:1)

错误是因为DNS,将条目添加到/etc/resolve.conf

$ cat /etc/resolve.conf
search xyz.com abc.com   --> DOMAINS
nameserver 10.192.160.12 -->DNS1
nameserver 10.193.180.23 -->DNS2

这使得能够通过名称和&amp ;;到达本地机器。因此克隆将会成功。

答案 4 :(得分:0)

克隆和网络界面使用完全相同的机制,所以你可以在http://localmachine001:8000/看到回购,但你无法从中克隆它,这很奇怪。

尝试通过IP地址访问该计算机怎么样?像hg clone http://192.168.0.4:8080这样的东西,看看会发生什么?

--debug的更多细节?

答案 5 :(得分:0)

我遇到了同样的问题,

要解决此问题,我刚刚断开了互联网与笔记本电脑的连接,然后再次重新连接

谢谢您的快乐编码;)