Объедините несколько подпунктов в один и сохраните историю в Mercurial
В настоящее время у меня есть проект, состоящий из нескольких хранилищ, например:
+ ---Проект (основной репо) + ---Core (subrepo) + ---Веб (подпункт) \ ---Тесты (подпункт)
К сожалению, код между подпунктами довольно связан, поэтому он плохо работает с ветвями.
Есть ли способ объединить подпункты в один основной репозиторий, сохраняющий историю?
3 ответа
Я бы начал с использования hg convert
с файловой картой, которая исключает .hgsub
и подпункты. Далее используйте hg convert
в подпунктах с переименованными записями в файловой карте, например: rename . Core
Как только у вас появятся эти новые репозитории, вы можете использовать hg pull -f
импортировать наборы изменений из преобразованных подпунктов в преобразованный основной репо по одному. Вам также нужно будет объединить их с вашим новым главным репо (они образуют отдельные головы с нулевой ревизией как самый последний общий предок).
Первое предположение: возможно, используя расширение convert с файловой картой?
Еще одна попытка:
- Вытяните все свои репо в один репо, у вас будут разные головы для ветки "по умолчанию"
- Тогда для каждой головы
- Обновление к этой главе
- Переместите файлы (hg move) в правильный каталог
- Объединить все головы по умолчанию
Изменить: добавлено больше деталей и еще одна попытка
Если вам не нужно конвертировать репо, почему бы просто не перенести каждый репо в центральный?
- Убедитесь, что у каждого корневого каталога репо есть главный каталог, названный в честь имени репо.
- толкать каждый репо в основном репо.