Разница между клонированием и копированием в Mercurial - PullRequest
19 голосов
/ 09 апреля 2010

Копирует ли каталог .hg в другой каталог так же, как и клонирование в Mercurial (используя TortoiseHg, хотя я думаю, что это неактуально) или команда клонирования в Mercurial делает что-то особенное во время этого процесса?

1 Ответ

30 голосов
/ 09 апреля 2010

Это почти то же самое. Клонирование делает несколько разных вещей, ни одна из которых не требуется, но некоторые из них крутые:

  • клоны тоже получают рабочий каталог (чего можно избежать с помощью -U)
  • клоны получают исходное хранилище по умолчанию для push / pull в файле .hg / hgrc
  • клоны могут получить только подмножество оригинала (клон -r X получает ревизию X и только всех предков)
  • клоны используют жесткие ссылки, когда файловая система поддерживает это

Этот последний классный. Это означает, что если у меня есть репозиторий на 200 ГБ, и я делаю clone -U src dest, я получаю полный клон, который вообще не использует дисковое пространство! Если я пропущу -U, я получу рабочую копию, которая занимает место, и, когда два клона начинают расходиться, новый начинает занимать пространство, но базовый clone -U мгновенно освобождает место на диске в современном файле системы. Это не относится к копии (которая тоже отлично работает).

...