Можно ли клонировать только самые последние изменения в репозитории, а не всю историю?

Мне нужно работать с hg-репозиторием, который имеет миллионы строк кода и сотни тысяч изменений. Как вы можете себе представить, это действительно замедляет действие ртути и TortoiseHg.

Возможно ли создать локальный репозиторий, который имеет только последние несколько тысяч наборов изменений?

Не только это, надеюсь, заставит все работать быстрее, но это может также сэкономить мне некоторое пространство на жестком диске.

Ответ 1

Нет, вы не можете, но вы можете оптимизировать свой локальный клон. Посмотрите мой ответ на fooobar.com/questions/492868/....

Проделана некоторая работа над неглубокими клонами, но она все еще очень продвигается (и, похоже, не было большого прогресса):

https://www.mercurial-scm.org/wiki/ShallowClone

Ответ 3

Нет, вы не можете. Это называется "Shallow Clone", и он не реализован/не поддерживается. Миллионы строк кода и тысячи наборов изменений не особо велики, и как только вы клонировали его один раз, почти каждое действие должно быть почти мгновенным.

Кроме того, сжатые двоичные дельта в каталоге .hg обычно меньше, чем весь несжатый код в рабочем каталоге, поэтому экономия пространства также не должна быть существенной.

Как только вы клонировали репо один раз, убедитесь, что делаете какие-либо дополнительные клоны на одном компьютере с вашего локального клона, и вам не придется ждать, пока все репо снова будет клонировано.