2015-06-15 6 views
0

(отказ от ответственности: Я новичок в Mercurial и контроль версий)ртутных - несколько проектов и репозитории

Так у меня есть структура папок

Programs 
    CPPLib1 
    CPPProject11 
    CPPProject12 

    CPPLib2 
    CPPProject21 
    CPPProject22 

Каждая группа из трех является полностью независимой от другой группы , но внутри каждой группы этот код связан, и я хотел бы управлять им под управлением версии в целом (фиксировать/извлекать все в одной транзакции). Как я понял, перейдя по ссылке, у меня должен быть репозиторий для каждой группы в их общем родителе (Программы), но у меня не может быть 2 разных хранилища, верно? Означает ли это, я должен иметь такую ​​структуру вместо:

Programs 
    Group1 
    CPPLib1 
    CPPProject11 
    CPPProject12 

    Group2 
    CPPLib2 
    CPPProject21 
    CPPProject22 

Смежный вопрос, этот сайт http://help.fogcreek.com/8169/using-more-than-one-repository говорит

«Поскольку Mercurial и Git являются распределенными системами контроля версий (DVCSs), вы должны использовать по крайней мере использовать один отдельный репозиторий для каждого проекта, включая совместные проекты и библиотеки ».

Так что же означает этот совет? У меня не может быть отдельного хранилища для каждого из

CPPLib1 
    CPPProject11 
    CPPProject12 

и управлять ими в целом. Я запутался.

+0

Сложно понять, что именно вы спрашиваете, но, возможно, субрепозитории - это то, что вы ищете для? https://mercurial.selenic.com/wiki/Subrepository –

+0

Не уверен, что неясно ... Я пытаюсь выяснить, какая настройка лучше всего подходит для моего дела. Я следил за вашей ссылкой, это то, что вы рекомендуете? Похоже, это может быть решение, но я не уверен. Fogcreek говорит что-то о отдельных репозиториях, ваша ссылка о субрепозиториях. Поскольку у меня нет опыта работы с mercurial, я действительно не могу сказать разницы, если есть вообще. –

ответ

0

Для каждой из ваших проектных групп вам необходимо создать один репозиторий в отдельном каталоге. О том, как вы структурируете это под дебатами, зависит от ваших предпочтений.

Вы говорите, что хотите, чтобы все в этой группе проектов управлялось в одном репозитории. Это означает, что вы можете просто создать структуру каталогов, как описано с суб-проектами, находящимися в разных каталогах в этом репозитории.

В каждой группе вы можете взять ее дальше и сделать каждый из этих каталогов (библиотека, программа 1, программа 2, ...) отдельным репозиторием, который, в свою очередь, станет субрепозитарием основного репозитория, как описано в ссылке, данной Лассе Карлсен (Subrepository).

Вы также можете обрабатывать его по-разному, если вы разрешите более гибкий макет и отпустите проверку всей группы: например, вы можете объявить библиотеки субрепозитатом для каждой из программ, использующих библиотеку , Это будет иметь то преимущество, что программа определяет этот способ напрямую, какую версию библиотеки он зависит от

Кроме того, перед переходом к субрепозиториям вам может понадобиться альтернативная реализация гостевых репозиториев. Они обрабатывают зависимость менее строгую, поэтому неспособность найти субрепозиторий становится менее фатальной: https://bitbucket.org/selinc/guestrepo

+0

Спасибо, это в основном отвечает на мои вопросы. Мне нужно экспериментировать, прежде чем спрашивать. –