Compor comandos do Mercurial a partir do Toroise-Hg e enviar para o Linux remoto usando o ssh

0

Eu uso o ToroiseHg Workbench para gerenciar repositórios na minha máquina windows local, e eu gosto de como o TortoiseHg compõe os comandos baseados em cliques que faço usando a GUI.

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

É possível encapsular através de SSH e enviar comandos para um servidor web unix? Eu gostaria de gerenciar um repo remotamente no meu servidor web usando o TortoiseHg.

    
por steampowered 21.08.2012 / 00:07

1 resposta

2

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

Eles não são realmente enviados como "comandos", em vez disso, o Mercurial usa seu próprio protocolo que permite que um cliente consulte um servidor remoto para algumas coisas como "você tem esse changeset?", "o que são os chefes de ramificação? "e" por favor aceite este pacote! ".

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

Como para gerenciar um repositório remoto em seu próprio servidor web: Você precisa fazer o login com SSH e criar um repositório vazio em seu servidor Unix:

$ hg init my-website

Depois, você pode enviar para o servidor da sua máquina local:

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

Como você está falando sobre como gerenciar um site, convém adicionar

[hooks]
changegroup = hg update

para o arquivo .hg/hgrc no repositório remoto: ele fará com que o Mercurial execute hg update após cada envio para esse repositório. Isso significa que a cópia de trabalho será atualizada com os arquivos mais recentes e, portanto, seu servidor da Web poderá veicular tudo isso no mundo.

    
por 21.08.2012 / 09:19