#mercurial #tortoisehg
#mercurial #tortoisehg
Вопрос:
У нас более 2700 ревизий, и загрузка Mercurial занимает 30-45 секунд при выполнении слияния, push или чего-либо еще с помощью TortoiseHg. Мне интересно, есть ли другой способ, кроме прямого создания нового репозитория, для очистки истории изменений. Скажем, отключите файлы до версии 2400 или около того.
Комментарии:
1. Предполагая, что этот графический интерфейс является TortoiseHg?
Ответ №1:
Не ответ на ваш вопрос, но:
Возможно, помогает уменьшение «размера пакета журнала» до 100 (по умолчанию 500) в настройках.
Наш репозиторий с более чем 2300 оборотами загружается за 2-3 секунды (с моего SAS-диска 15k rpm, но это неважно), поэтому я не думаю, что ваша проблема в большом количестве оборотов, на самом деле. Существуют гораздо большие репозитории. 🙂
Обратите внимание, что разработчики как Mercurial core, так и TortoiseHg заинтересованы в поиске ошибок производительности, поэтому, возможно, стоит обратиться за помощью к спискам рассылки.
Ответ №2:
Вы можете использовать расширение histedit для сжатия нескольких наборов изменений в один. Выполнение команды histedit для ряда ревизий приведет к появлению текстового документа, который выглядит следующим образом (из документации histedit):
выберите c561b4e977df Добавить бета
выберите 030b686bedc4 добавить гамма
выберите 7c2fd3b9020c Добавить дельтаИстория редактирования между c561b4e977df и 7c2fd3b9020c
Команды:
p, выбрать = использовать фиксацию
e, редактировать = использовать фиксацию, но остановиться для внесения изменений
f, fold = использовать фиксацию, но сворачивать в предыдущую фиксацию
d, drop = удалить фиксацию из истории
Изменение pick
на fold
для определенного набора изменений в приведенном выше списке приведет к его включению в предыдущий набор изменений. Это даст вам возможность разрешить неудачные слияния, а также ввести новое сообщение о фиксации.
ПРЕДУПРЕЖДЕНИЕ:
Использование histedit изменит историю репозитория, включая идентификаторы хэшей, что вызовет проблемы, если вы не запустите каждого разработчика заново с новым клоном репозитория после внесения изменений. Кроме того, вам, вероятно, потребуется ограничить вашу историю изменений наборами изменений с одним родителем (т. Е. наборами изменений без слияния).