Подтвердить что ты не робот

Клонирование меркурийного репо удаленному хосту

Mercurial поддерживает push-стиль клонирования репозиториев для удаленных хостов, однако недавно клонированные репозитории не содержат рабочих копий. Есть ли какой-либо "скрытый" вариант для обновления Mercurial call на этих клонированных репозиториях?

Вот пример:

1) hg init hello

2) hg clone hello ssh://somehost/hello

ssh://somehost/hello содержит только каталог .hg, и я должен выполнить следующую команду в оболочке, чтобы заполнить рабочую копию:

3) ssh somehost 'cd hello && & hg update '

Есть ли способ избежать шага 3)?

4b9b3361

Ответ 1

Вы можете создать крючок на принимающей стороне. Добавьте следующий раздел в ваш репо /.hg/hgrc

[hooks]
changegroup = hg update

Это должно сделать это. Обратите внимание, что крючки не клонируются.

Ответ 2

Нет скрытой возможности принудительно обновлять удаленный репозиторий. Только одно условие определяет, выполняется ли обновление (например, строка 239 hg.py в источнике Mercurial 1.0.1):

if dest_repo.local():

Если вы собираетесь сделать какую-то работу в рабочей копии, вы все равно войдете в систему, и в этот момент запуск "hg update" довольно прост, поэтому нет большой мотивации для ослабления текущего ограничения на удаленном компьютере клоны.

Ответ 3

У меня такая же проблема, и, к сожалению, нет простого решения, чтобы избежать шага 3. Mercurial не проверяет рабочую копию удаленно, как "git clone", поэтому вы всегда будете иметь этот дополнительный шаг при развертывании ваши html файлы в первый раз, например.