Совместное использование основной кодовой базы несколькими проектами - PullRequest
1 голос
/ 03 апреля 2012

У нас есть несколько продуктовых линеек, построенных вокруг общего ядра, и в настоящее время мы поддерживаем их в SVN, используя внешние компоненты. Переходя на Mercurial, естественно перейти к использованию hg суб-репозиториев .

Дело в том, что ядро ​​довольно большое (вероятно,> ГБ, судя по репозиторию SVN), и типичный разработчик иногда хочет работать одновременно над несколькими продуктами, скажем 3-4.

Правильно ли я понял, что обычно это означает, что разработчик будет реплицировать ядро ​​3-4 раза для каждого разработчика со всей его историей? Кроме того, если разработчик желает выполнить какую-то простую операцию в другом продукте, это будет означать, что ядро ​​должно быть извлечено первым, даже если оно уже доступно клиенту (несколько раз ...)?

1 Ответ

0 голосов
/ 03 апреля 2012

Для того, чтобы по-настоящему совместно использовать субпозиторий (а не его рабочая копия), вы можете использовать расширение share .Однако это делает процесс клонирования немного нелогичным:

hg clone -U remote_core core
hg clone -U remote_projectA projectA
cd projectA
hg share ../core core
hg update
cd ..
hg clone -U remote_projectB projectB
cd projectB
hg share ../core core
hg update

И так далее.Но я предупреждаю вас, что у вас будет более одной головной боли с этой настройкой.На работе у нас есть похожая настройка, но вместо этого у общего подпозитория есть ветвь (не именованная ветвь, а ветвь клона, выделенный главный репозиторий) для каждого проекта, который его использует.Таким образом, проекты могут изменять общий код независимо друг от друга, но при этом легко объединять их.

...