2008-11-03 2 views
52

У меня есть довольно большой Mercurial репозиторий, который, как я решил, будет лучше, чем несколько небольших репозиториев. Есть ли способ, которым я могу разделить репозиторий и сохранить в каждой части свою историю изменений?Можно ли разделить хранилище Mercurial?

ответ

53

Лучший способ сделать это - использовать 'convert' extension. Вы будете использовать ртутный и как источник и тип назначения, а затем использовать --filemap с записями, как:

exclude path/you/do/not/want 
rename path/you/do/want . 

переименования необходимо только, если вы хотите взять детали вы сохраняя и перемещать их «высокий» в иерархию каталогов.

-4

Просто клонируйте его и удалите ненужный материал из каждой копии.

+1

Это не помогает. У каждого близкого по-прежнему есть полная история, поэтому «слишком много вещей» всегда будет в каталоге «.hg», занимая место. – 2008-11-03 04:16:15

+10

ах, вы хотите, чтобы сталинистская ревизионистская форма контроля версий. ;) http://en.wikipedia.org/wiki/Historical_revisionism_(negationism) – 2009-01-15 21:46:21

0

Я нашел подробное руководство here:

Создать файл карты 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 
Смежные вопросы