У меня есть довольно большой Mercurial репозиторий, который, как я решил, будет лучше, чем несколько небольших репозиториев. Есть ли способ, которым я могу разделить репозиторий и сохранить в каждой части свою историю изменений?
Можно ли разделить хранилище Mercurial?
Ответ 1
Лучший способ сделать это - использовать 'convert' extension. Вы будете использовать меркурийный и оба типа источника и назначения, а затем используйте --filemap
с такими записями, как:
exclude path/you/do/not/want
rename path/you/do/want .
Переименование необходимо только в том случае, если вы хотите взять части, которые вы храните, и переместить их "выше" в иерархии каталогов.
Ответ 2
Я нашел подробное руководство здесь:
Создайте карту файла new-repo.filemap
, например
include vendor/FooBackend
rename vendor/FooBackend .
Создайте еще одну карту файлов rewrite-old-repo.filemap
:
exclude vendor/FooBackend
Создайте новый репозиторий:
hg convert /path/to/current/repo /path/to/new/repo --filemap new-repo.filemap
Новый репозиторий завершен. Каталог пуст, но hg update
будет доводить его содержимое до скорости.
Создайте измененный репозиторий:
hg convert /path/to/current/repo /path/to/rewritten/repo --filemap rewrite-old-repo.filemap
Ответ 3
Просто клонируйте его и удалите ненужный материал из каждой копии.