2010-09-21 1 views
5

Скажем, у меня есть репозиторий на другой машине, чья вся история будет большой, чтобы клонировать локально. Если я не намерен отправлять какие-либо изменения обратно в этот репозиторий, нет причин, по которым я не мог бы просто сделать снимок подсказки. Есть ли способ сделать это, или я собираюсь найти себя, работая вокруг этого с rsync-хаком или чем-то подобным?Могу ли я получить снимки наконечника ртутного хранилища, не делая полного клонирования?

Если это помогает, в моем случае удаленный репозиторий предоставляется mercurial-сервером через туннель ssh.

+0

Мое окончательное решение состояло в том, чтобы сервер всегда сохранял свое представление о хранилище в актуальном состоянии, делая крючок «обновлением hg». Там просто достаточно сделать rsync, исключая. hg. Он страдает потенциальной опасностью, которую кто-то может проверить во время работы rsync, но особенности моего бизнес-дела делают это чрезвычайно маловероятным и легко обнаружимым. – Sniggerfardimungus

ответ

2

Вы можете использовать hg archive, чтобы создать неверсированный архив для любой версии. Он не работает с URL-адресом ssh, поэтому вам придется запускать его на удаленном хосте, а затем распечатать архив обратно.

+0

Я думаю, что я буду использовать службу на сервере, которая создаст архив по требованию и сделает его доступным через scp. – Sniggerfardimungus

3

Стандартный скрипт CGI для Mercurial позволяет загружать zip и tarball для любой версии. См. web.allow_archive setting. Вы также можете увидеть это с помощью hg serve, который работает под тем же кодом, что и скрипт CGI.