Mercurial через ssh с конфигурационным файлом - PullRequest
4 голосов
/ 06 августа 2011

Допустим, у меня есть следующий файл ssh .config :

Host host_nickname
    User xxx
    HostName yyy.zz.vvv
    ControlMaster auto
    ControlPath ~/.ssh/%r@%h:%p

В случае, если вы не знакомы с ControlMaster или ControlPath , вот описание из руководства ssh_config :

ControlMaster:
         Enables the sharing of multiple sessions over a single network
         connection.  When set to ``yes'', ssh(1) will listen for connec-
         tions on a control socket specified using the ControlPath argu-
         ment.  Additional sessions can connect to this socket using the
         same ControlPath with ControlMaster set to ``no'' (the default).
         These sessions will try to reuse the master instance's network
         connection rather than initiating new ones, but will fall back to
         connecting normally if the control socket does not exist, or is
         not listening.

В Mercurial, если вы хотите перенести или вытащить из хранилища, вы можете просто набрать следующее:

hg push ssh://user@example.com/hg/

Теперь мой вопрос:

Я хотел бы попросить Mercurial выдвинуть (или вытащить) хранилище в /path/to/repository на сервере, соответствующем моей записи конфигурации ssh host_nickname . Как мне это сделать?

1 Ответ

3 голосов
/ 06 августа 2011

Если вы посмотрите под hg help urls, вы найдете

ssh://[user@]host[:port]/[path][#revision]

Итак, если предположить, что /path/to/repository работает из вашей директории на удаленном компьютере, введите

hg [push|pull] ssh://host_nickname/path/to/repository

Это работает, потому что hg не выполняет разрешение имен;ssh есть, и вы указали соответствие между host_nickname и действительным HostName.Кроме того, ControlMaster не повлияет на это, так как это позволяет просто мультиплексировать по одному ssh-соединению.Обратите внимание, что если hg отсутствует в вашем удаленном PATH, вам нужно указать его через --remotecmd /path/to/hg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...