У меня есть ряд квази-связанных проектов, которые я хочу контролировать версиями. В SVN я бы установил их как несколько каталогов в рамках одного проекта
/scripts #updates in sync with project1 & project2
/project1 #requires database
/project2 #requires database
/database
Естественно, что для этого примера игрушек возможны другие варианты SVN, но этот макет имеет преимущества:
- Я могу копировать файлы между ветвями, сохраняя историю
- Я могу проверить только подмножество проектов, например
svn co repo/project2; svn co repo/database
. Это экономит значительное количество памяти и время, если проект1 большой. - Простое управление репозиториями, поскольку пользовательский доступ определен один раз для всех проектов.
Эта парадигма не хорошо отображена для mercurial, поскольку вы не можете клонировать один каталог меркуриального репо. Поэтому мой вопрос: какой наиболее распространенный способ хранения больших, тесно связанных проектов в mercurial?
Мои идеи:
- Несколько репозиториев - теряет историю файлов, которые перемещаются между проектами
- Леса - кажется, застопорился, и я не уверен, насколько стабильно это расширение
- Именованные ветки с главным образом несвязанным контентом
- SubRepos - К сожалению, я запускаю Ubuntu 9.04, который отправляет только hg 1.1.2. В противном случае это будет выглядеть как хороший вариант.