Error de clonación mercurial hg – "abortar: error: nombre o service desconocido"

He instalado el último package de hg disponible para Fedora Linux. Sin embargo, hg clone informa un error.

hg clone http://localmachine001:8000/ repository 

informes:

 "abort: error: Name or service not known" 

localmachine001 es una computadora dentro de la networking local. Puedo hacer ping desde mi caja de Linux sin ningún problema. También puedo usar la misma dirección http y explorar el código existente. Sin embargo, el clon hg no funciona.

Si ejecuto el mismo command desde mi máquina Macintosh, puedo clonar fácilmente el repository.

Algunos resources de Internet recomiendan editar el file .hgrc y agregarle un proxy:

 [http_proxy] host=proxy:8080 

Lo he intentado sin éxito. Además, supongo que el proxy no es necesario en este caso, ya que la máquina del server hg está en mi networking local.

¿Alguien puede recomendarme qué debo hacer o cómo podría rastrear el problema?

Gracias de antemano.

El problema es (probable) que su proxy http no sea capaz de:

  1. Resolver localmachine
  2. Llegue a su IP local (o de la localmachine local), incluso si pudiera resolver 'localmachine' a su dirección local correcta.

Primero, asegúrese de que nada de su lado (iptables / NAT / firewall) impida la salida o el ingreso en el puerto proxy. Si funciona si eres root, ese es el problema: trabaja hacia atrás desde allí.

También es concebible que su proxy manipule las respuestas del HG remoto lo suficiente como para confundir a Mercurial, pero no a su browser. En cualquier caso, es mejor ir alnetworkingedor del proxy si el HG está en la networking local (localhost / lan).

Afortunadamente, la directiva [http_proxy] permite [http_proxy] el proxy para ciertos nombres de host, lo que es ideal para tratar cosas en el mismo lado de un NAT, o hosts que solo existen en un equipo (por ejemplo, resuelto a través de / etc / hosts). le ahorra al dolor tener que editar .hgrc cada vez que necesita cambiar el comportamiento.

Vea la documentation , o simplemente haga que su .hgrc tenga un aspecto similar a este:

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

La directriz operativa, por supuesto, es no . No estoy seguro si puede usar comodines al especificar los hosts (no uso la function de proxy, así que no hay forma de probar eso … y no está especificado en la documentation). Puede intentar experimentar con eso, por ejemplo, 192.168.1.* Y háganos saber si eso también funciona.

De todos modos, para el perezoso terminal (o personas en un apuro bastante grande), la sección relacionada de la documentation vinculada anteriormente:

 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. 

Ejecutar hg como root resolvió el problema para mí. Pero todavía no sé por qué.

Esto me pasó cuando mi configuration del server de nombres DNS no estaba configurada. Intente hacer ping al host del repository remoto e intente hacer ping a un host conocido, por ejemplo google.com . Si no funciona, arregla tu configuration de DNS.

El clon y la interfaz web usan exactamente el mismo mecanismo, por lo que es muy extraño que pueda ver el repository en http: // localmachine001: 8000 / pero no puede clonarlo.

¿Qué hay de intentar ir a esa máquina por una dirección IP? Algo así como hg clone http://192.168.0.4:8080 y vea qué pasa?

¿Algún otro detalle con --debug ?

El error se debe a DNS, agregue input en /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 

Esto permite llegar a la máquina local por nombre y, por lo tanto, la clonación tendrá éxito.