Redacte comandos Mercurial desde TortoiseHg y envíelos a Linux remoto usando ssh

Redacte comandos Mercurial desde TortoiseHg y envíelos a Linux remoto usando ssh

yo sueloBanco de trabajo TortoiseHgpara administrar repositorios en mi máquina Windows local, y me gusta cómo TortoiseHg compone los comandos en función de los clics que hago usando la GUI.

Pero sólo sé cómo usar TortoiseHg para administrar repositorios locales de Windows, no clientes remotos Unix Mercurial que residen en un servidor web.

¿Es posible hacer un túnel a través de SSH y enviar comandos a un servidor web Unix? Me gustaría administrar un repositorio de forma remota en mi servidor web usando TortoiseHg.

Respuesta1

No, esto no es posible: los únicos "comandos" que puedes enviar a través de SSH (y HTTPS) son hg pushy hg pull.

En realidad, no se envían como "comandos", sino que Mercurial usa su propio protocolo que permite a un cliente consultar a un servidor remoto algunas cosas como "¿tiene este conjunto de cambios?", "¿cuáles son los encabezados de las ramas?" y "¡Por favor acepte este paquete!".

Cuando usa SSH, su cliente Mercurial creará un túnel SSH y se iniciará hg serve --stdioen el host remoto. Ese hg servecomando es lo que habla el protocolo de cable Mercurial del que hablé anteriormente. Los entornos de alojamiento como Bitbucket están bloqueados para que este sea elsolocomando que puedes ejecutar a través de SSH: ¡no quieren que ejecutes comandos arbitrarios en sus servidores!

En cuanto a administrar un repositorio remoto entu propioservidor web: debe iniciar sesión con SSH y crear un repositorio vacío en su servidor Unix:

$ hg init my-website

Luego puede enviar al servidor desde su máquina local:

$ hg push ssh://your-server.com/path/from/home-dir/to/my-website

Dado que estás hablando de administrar un sitio web, es posible que desees agregar

[hooks]
changegroup = hg update

al .hg/hgrcarchivo en el repositorio remoto: hará que Mercurial se ejecute hg updatedespués de cada inserción en ese repositorio. Esto significa que la copia de trabajo se actualizará con los archivos más recientes y, por lo tanto, su servidor web podrá ofrecerlos al mundo.

información relacionada