Если манифест становится особенно большим, это может привести к снижению производительности.У Mercurial есть альтернативный формат хранилища - generaldelta - который часто может привести к гораздо меньшим манифестам.
Вы можете проверить размер своего манифеста, используя:
ls -lh .hg/store/*manifest*
Toполучить максимальное значение из 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.4GB.Манифест в первом клоне был ~ 600 МБ.Манифест в клоне клона был ~ 30 МБ.
Информации о Generaldelta в Интернете не так много - еще предстоит проделать определенную работу, прежде чем она станет форматом по умолчанию, но для многих она работает хорошопроекты.Первые несколько результатов поиска в Google содержат некоторую информацию о том, когда они были впервые представлены, и недавно было несколько обсуждений в списке рассылки mercurial-dev.