Скопирует ли каталог .hg в другой каталог так же, как клонирование в Mercurial (используя TortoiseHg, хотя я думаю, что это не имеет значения) или команда cloning в Mercurial делает что-то особенное во время этого процесса?
Разница между клонированием и копированием в Mercurial
Ответ 1
Это почти то же самое. Клонирование делает несколько вещей по-другому, ни один из которых не требуется, но некоторые из них круты:
- клоны также получают рабочий каталог (чего вы можете избежать с помощью -U)
- Клоны получают исходное репо, заданное по умолчанию для push/pull в файле .hg/hgrc.
- клоны могут получить только подмножество оригинала (clone -r X получает ревизию X и только всех предков)
- Клоны используют hardlinks, когда файловая система поддерживает его
Это последнее довольно круто. Это означает, что если у меня есть 200-Гбайт репо, и я делаю clone -U src dest
, я получаю полный клон, который вообще не использует никакого дискового пространства! Если я пропущу -U
, я получаю рабочую копию, которая занимает пробел, и по мере того, как два клона начинают расходиться, новый начинает занимать место, но базовый clone -U
мгновенно и без дискового пространства в современном файле системы. Это неверно для копии (что тоже очень хорошо работает).