В моей компании есть центральный сервер CVS. У нас есть разные ветки для каждой версии продукта, которая все еще активно поддерживается. Локально я использую Git, в основном следуя подходу из http://undefinedvalue.com/2010/07/02/workflow-remote-cvs-local-git (git cvs занял очень много времени, а затем остановился с ошибкой :-/).
Я использую отдельный репозиторий Git для каждой ветки CVS (где каждая ветка CVS извлекается в другой каталог). Так, например, у меня есть каталоги ~/dev/our_product/v2, ~/dev/our_product/v3, ~/dev/our_product/v4 и ~/dev/our_product/main, каждый с .git непосредственно в каталоге. Ветка master следует за CVS (я обновляю ее вручную, периодически выполняя обновление cvs, за которым следует git commit).
Сейчас я думаю о том, чтобы объединить все эти репозитории Git в один. Если я понимаю, как объединить две ветки из двух разных репозиториев в одном репозитории? правильно, я могу создать новый репозиторий и заставить его отслеживать все существующие репозитории. Это также импортирует все ветки из существующих репозиториев, верно? И могу ли я потом выбросить существующие репозитории? Или я должен использовать другой метод, если я хочу это сделать?
Мне также интересно, облегчит ли это мой рабочий процесс.
Вариант использования 1: я начинаю разработку функции для основной ветки CVS, создавая ветку с названием some-feature. Затем я узнаю, что он должен перейти в v3. Могу ли я просто перебазировать функциональную ветку на v3?
Вариант использования 2: когда я вношу изменения в v2 (в ветке функций, некоторые-другие-функции), я должен объединить их в v3, v4 и main. Могу ли я сделать это, просто набрав «git merge some-other-feature» в соответствующих ветках отслеживания CVS?
С наилучшими пожеланиями,
Йенс