Есть численная модель, состоящая из большого числа модулей (цинк). Каждый участник проекта ставит численные эксперименты со своим набором модулей, в зависимости от задачи. Сейчас всё управляется с помощью CVS. Репозиторий представляет из себя долбаную кашу из тысяч веток, которые никогда не сливаются, и квадрильёна тагов, которые больше никому не нужны. Хочется уговорить коллег перелезть на более прогрессивную систему управления версиями. Например, по вот этой замечательной схеме. Возникает вопрос, как организовать тематические ветки, в которых набор модулей отличается от набора модулей в master и develop? Про подмодули и cherry-pick читал. Это будет полезно, но проблему полностью не решает. После трёхдневного гугления, придумал следующий способ.
Допустим, у меня есть репозиторий с тематической веткой, в которой подмножество модулей из master плюс пара моих модулей, которых в master нет. Выходит релиз, надо обновиться, но тащить всё из master мы не хотим. Делаем следующее
git checkout master
git pull origin
git checkout -b new_release topic_branch
git checkout master $path_to_my_modules
git checkout topic_branch
git merge new_release
git branch -d new_release
Допустим, я хочу добавить кучу всего в следующий релиз, но некоторые модули добавлять не хочу. Делаем следующее.
git checkout develop
git pull origin
git branch update_branch
git checkout topic_branch $path_to_my_modules
git checkout develop
git merge update_branch
git branch -d update_branch
git push origin
Опыта групповой работы с git не имею, ничего лучше придумать не могу, протестировать workflow тоже не могу, т.к. никто из коллег не знает, что такое git. Специалисты по git, оно вобще работать будет? Может есть более простой способ достичь такого же результата?