А что делать, если продакшенов несколько? Т.е. несколько активных версий продукта? И понятно часть фич должна появляться во всех версиях, а некоторые нет? Как-то тогда моловато одного продакшен мастера.
Ну да, заводите тогда по мастеру на каждый продакшен. Назовите их не абстрактным именем "master", а какими-то личными именами, типа "версия_для_вредного_клиента", "клевая версия" и "вариант_для_тормозных_компов". В каждую ветку отправляйте только нужные бранчи.
Мастер - это не какая-то специальная зарезервированная ветка для продакшена. Это просто первая создающаяся ветка по умолчанию. Технически мастер ничем не отличается от любой другой ветки. Вы можете иметь сколько угодно веток для продакшенов, это исключительно вопрос договоренности.
Оно понятно, мы так делали, так же как и feature branch, задолго до Git. Просто хотел подчеркнуть, что "правильная метода" неполная и такие методы зачастую у людей вызывают больше вопросов чем ответов. http://twitter.com/#!/intr13/status/111433429685506048
Поскольку разница версий заключается как-раз в наличии или отсутствии в них определенных правок, то в любом случае кто-то в какой-то момент времени должен принять решение - входит данная правка в версию или нет.
И тут два пути.
1. Решение со стороны версии. Берем версию и мержим в нее нужные правки. Придется сделать эту работу для каждой версии.
2. Решение со стороны правки. Отмечаем правку неким тегом, потом пишем некий хук, который при пуше правки в удаленный репозиторий распознает по этому тегу, к каким версиям она относится и мержит с соответствующими версиями.
Второе решения я не юзал, ничего уверенно сказать не могу.
Сложновастенько. Я все равно не вижу кроме как держать различающиеся вещи отдельно от общих. То есть модульная структура проекта и в продакшене А конфигурялка подключает один функционал, а в продакшене Б - другой.
Но таим образом продакшены будут отличаться в репозитарии только конфигом. А конфиг можно держать вне системы контроля версий. И приходим к тому, что несколько продакшенов не нужны. Или, если нужны, они находятся в разных репозитариях. А общие части подключаются через суб-репозитарии.
Reply
Мастер - это не какая-то специальная зарезервированная ветка для продакшена. Это просто первая создающаяся ветка по умолчанию. Технически мастер ничем не отличается от любой другой ветки. Вы можете иметь сколько угодно веток для продакшенов, это исключительно вопрос договоренности.
Reply
Просто хотел подчеркнуть, что "правильная метода" неполная и такие методы зачастую у людей вызывают больше вопросов чем ответов.
http://twitter.com/#!/intr13/status/111433429685506048
Reply
Reply
Reply
Reply
Reply
И тут два пути.
1. Решение со стороны версии. Берем версию и мержим в нее нужные правки. Придется сделать эту работу для каждой версии.
2. Решение со стороны правки. Отмечаем правку неким тегом, потом пишем некий хук, который при пуше правки в удаленный репозиторий распознает по этому тегу, к каким версиям она относится и мержит с соответствующими версиями.
Второе решения я не юзал, ничего уверенно сказать не могу.
Reply
Но таим образом продакшены будут отличаться в репозитарии только конфигом. А конфиг можно держать вне системы контроля версий. И приходим к тому, что несколько продакшенов не нужны. Или, если нужны, они находятся в разных репозитариях. А общие части подключаются через суб-репозитарии.
иначе оно как-то все не очень красиво получается.
Reply
Leave a comment