Использование git flow с git subtree
Я просто перенес большое репозиторий SVN в Git и начал использовать Gitflow. Это сработало как шарм, но сейчас я думаю о том, чтобы разделить этот большой репо на несколько меньших.
Давайте предположим, что дерево каталогов репо выглядит следующим образом:
/repo
- libs
- apps
-- app 1
-- app 2
И мы хотим разделить его на три репозитория, один с базовой структурой (каталоги libs и apps), а два других - с каталогами apps.
Если я буду использовать git поддерево для такого разделения, смогу ли я использовать git flow индивидуально в каждой части или мне придется использовать его глобально?
PS: это мой первый вопрос в stackru, будьте добры:)
1 ответ
Я не использую git flow, но я бы сказал, что ответ зависит от того, насколько вы модульны. Можете ли вы развернуть структуру ядра без развертывания app1 и app2? Можете ли вы развернуть app1 и app2 независимо друг от друга? Является ли ваша команда разработчиков достаточно большой и достаточно сложной, чтобы рассматривать их как независимые рабочие процессы?
Если ответ на эти вопросы "да", я бы поспорил, рассматривая их как несколько проектов, каждый с уникальным потоком. Однако, если ответ на любой из них "Нет", я бы не стал ломать ваш проект. Фактически, если изменения в app1 и app2 также требуют изменений в основном репозитории в большинстве случаев, я бы вообще не стал ломать ваши репозитории.
Вложенные репозитории, независимо от того, выполняются ли они с поддеревом, субмодулями или (божественным запретом) .gitignore
по определению сделать рабочие процессы более сложными. Команды как git bisect
а также git log
стать чуть менее полезным; отслеживание истории и ошибок стало немного сложнее. Новым разработчикам нужно немного больше узнать, чтобы начать писать код. Из личного опыта: следуйте этому пути осторожно. Если ваши суб-репо сильно переплетены, вы вернетесь сюда через год и напишете этот ответ для кого-то, кто хочет сломать свой проект, например, в проблемной git-версии Pay It Forward.