Если манифест становится особенно большим, это может привести к снижению производительности. У Mercurial есть альтернативный формат репозитория — generaldelta, который часто может привести к намного меньшим манифестам.
Вы можете проверить размер своего манифеста, используя:
ls -lh .hg/store/*manifest*
Чтобы получить максимальное значение от generaldelta:
Установите Mercurial 2.7.2 или более позднюю версию (2.7.2 включает исправление ошибки в generaldelta, которая могла привести к увеличению размера манифеста, но есть большая вероятность, что вы не столкнетесь с этой ошибкой в более ранней версии).
Выполнить hg --config format.generaldelta=1 clone --pull orig orig.gd
.
Это может дать некоторое улучшение размера манифеста, но не все преимущества.
- Выполнить
hg --config format.generaldelta=1 clone --pull orig.gd orig.gd.gd
.
Клон клона может дать гораздо большее улучшение размера манифеста. Это связано с тем, что при извлечении из репозитория generaldelta порядок вещей будет изменен для оптимизации размера манифеста.
В качестве примера потенциальных преимуществ generaldelta я недавно преобразовал репозиторий, в котором было ~55000 коммитов SVN (полученных с помощью hgsubversion) плюс ~1000 коммитов/слияний/трансплантатов Mercurial и т. д. Манифест в исходном репо весил ~1,4 ГБ. Манифест в первом клоне весил ~600 МБ. Манифест в клоне клона был ~30 МБ.
В Интернете не так много информации о generaldelta — еще многое предстоит сделать, прежде чем он станет форматом по умолчанию, но он хорошо работает для многих проектов. Первые несколько результатов поиска Google содержат некоторую информацию о том, когда он был впервые представлен, и недавно было обсуждение в списке рассылки mercurial-dev.
person
Tim Delaney
schedule
10.10.2013