Уменьшение размера репозитория в Mercurial
поскольку моя команда работает над данным проектом с источником в репозитории Mercurial, репозиторий, очевидно, увеличивается в размере. Таким образом, клонирование репозитория по сети становится все медленнее и медленнее.
существуют ли какие-либо методы, которые используются для сокращения старых коммитов или уменьшения размера репо, чтобы сделать операцию клонирования быстрее по медленной сети?
(мы используем TortoiseHg в качестве клиента Mercurial, но это (я предполагаю) не должно разница в решении этой проблемы.)
4 ответов
первый вариант:использовать convert
расширение для разложения репозитория в группу небольших хранилищ.
скажем, у вас есть репозиторий, который эволюционировал, чтобы содержать множество проектов (папок). И вы решили, что вам будет лучше, если каждый проект (папка) будет отдельным репозиторием. Вы можете использовать
вы можете использовать выделенный клон удаленного РЕПО на вашем компьютере в качестве кэша для операций клонирования. Поэтому вам не нужно каждый раз переносить все РЕПО через сеть, а только те части, которые еще не существуют.
Если вам нужны только файлы, в данной редакции, но не нужно изучать историю и делать новые коммиты, а затем скачать снимок можно быстрее.
нормальный hgweb
CGI-скрипт может предоставить файл zip или tar для любой ревизии. Архивы создаются на лету. Вам нужно только добавить
[web]
allow_archive = gz, zip, bz2
в файле конфигурации. Затем вы можете найти архивы по URL вида
http://server.com/repo/archive/rev.zip
заменить номер редакции с именем ветви он меняет хэш, который вы хотите загрузить файл с помощью wget
, curl
или аналогичный инструмент.
эта стратегия окупается только при очень больших по сравнению с размерами одного набора.
это может быть так, если репозиторий содержит большие файлы, которые часто меняются. The расширение largefiles может быть альтернативой здесь: он позволяет загружать только файлы, необходимые для проверки ревизии. Таким образом, вы избегаете загрузка истории для больших файлов и сохранение значительного объема пропускной способности.
иногда такие проблемы могут быть вызваны, если в вашем репозитории есть большие двоичные файлы. Любые обновления к ним, как правило, вызывают большие различия и делают размер более резко, чем обычно.
Если это относится к вам, возможно, стоит посмотреть на расширение больших файлов распространяется с Mercurial 2.0. Я не использовал его лично, и похоже, что у него все еще есть некоторые красные края, но если включает команду lfconvert
, который преобразует РЕПО вы. Затем вы можете попробовать, чтобы увидеть, клонирует ли он быстрее.