Во-первых, у меня очень большой репозиторий cvs, и я пытаюсь переключить вещи на Mercurial. Репозиторий cvs состоит из нескольких каталогов, что-то вроде ситуации в этом вопросе. Однако каждый подкаталог не является целым независимым проектом. Каждый проект использует подмножество целого, но их пересечения не пусты.
Вот пример для уточнения:
/cvsroot
.../core
.../feature-1
.../feature-2
Проект 1 использует ядро и функцию-1; Проект 2 использует ядро и функцию-2. Я не хочу, чтобы люди, работающие над проектом 2, имели каталог feature-1 в своих рабочих копиях, потому что на самом деле это набор из примерно 30 каталогов и немалое количество места.
Есть ли способ справиться с этим легко (или, альтернативно, хорошо) с ртутью? Я думал об использовании отдельного хранилища для пересечения, но это неоптимально. Это означает, что нужно делать дополнительные операции, получать дополнительные обновления и, возможно, писать несколько сценариев для управления им.
Моей другой альтернативой было копирование пересечения в каждом. Это не очень хорошо, потому что это может привести к разветвлению общего кода, так как разные люди работают над разными его частями.