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