Componha comandos Mercurial do TortoiseHg e envie para Linux remoto usando ssh

Componha comandos Mercurial do TortoiseHg e envie para Linux remoto usando ssh

eu usoBancada de trabalho TortoiseHgpara gerenciar repositórios em minha máquina Windows local, e gosto de como o TortoiseHg compõe os comandos com base nos cliques que faço usando a GUI.

Mas eu só sei como usar o TortoiseHg para gerenciar repositórios locais do Windows, não clientes Unix Mercurial remotos residentes em um servidor web.

É possível fazer um túnel através de SSH e enviar comandos para um servidor web Unix? Gostaria de gerenciar um repositório remotamente no meu servidor web usando o TortoiseHg.

Responder1

Não, isso não é possível: os únicos “comandos” que você pode enviar por SSH (e HTTPS) são hg pushe hg pull.

Eles não são realmente enviados como "comandos", em vez disso, o Mercurial usa seu próprio protocolo que permite a um cliente consultar um servidor remoto por algumas coisas como "você tem este conjunto de alterações?", "quais são os chefes das filiais?", e "por favor, aceite este pacote!".

Quando você usa SSH, seu cliente Mercurial criará um túnel SSH e iniciará hg serve --stdiono host remoto. Esse hg servecomando é o que fala o protocolo de fio Mercurial de que falo acima. Ambientes de hospedagem como o Bitbucket são bloqueados para que este seja oapenascomando que você pode executar por SSH - eles não querem que você execute comandos arbitrários em seus servidores!

Quanto ao gerenciamento de um repositório remoto emseu próprioservidor web: Você precisa fazer login com SSH e criar um repositório vazio em seu servidor Unix:

$ hg init my-website

Então você pode enviar para o servidor a partir de sua máquina local:

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

Já que você está falando sobre gerenciamento de um site, talvez você queira adicionar

[hooks]
changegroup = hg update

para o .hg/hgrcarquivo no repositório remoto: fará com que o Mercurial seja executado hg updateapós cada envio para esse repositório. Isso significa que a cópia de trabalho será atualizada com os arquivos mais recentes e assim seu servidor web poderá servi-los para o mundo.

informação relacionada