Еще раз про гит

Sep 23, 2011 21:47



Read more... )

git

Leave a comment

messirvoland September 26 2011, 09:55:56 UTC
А что делать, если продакшенов несколько? Т.е. несколько активных версий продукта? И понятно часть фич должна появляться во всех версиях, а некоторые нет? Как-то тогда моловато одного продакшен мастера.

Reply

m_ivanov September 26 2011, 10:17:27 UTC
Ну да, заводите тогда по мастеру на каждый продакшен. Назовите их не абстрактным именем "master", а какими-то личными именами, типа "версия_для_вредного_клиента", "клевая версия" и "вариант_для_тормозных_компов". В каждую ветку отправляйте только нужные бранчи.

Мастер - это не какая-то специальная зарезервированная ветка для продакшена. Это просто первая создающаяся ветка по умолчанию. Технически мастер ничем не отличается от любой другой ветки. Вы можете иметь сколько угодно веток для продакшенов, это исключительно вопрос договоренности.

Reply

messirvoland September 26 2011, 10:37:32 UTC
Оно понятно, мы так делали, так же как и feature branch, задолго до Git.
Просто хотел подчеркнуть, что "правильная метода" неполная и такие методы зачастую у людей вызывают больше вопросов чем ответов.
http://twitter.com/#!/intr13/status/111433429685506048

Reply

m_ivanov September 26 2011, 10:41:57 UTC
Не уловил сути сомнений товарища по ссылке. Возникает второй продакшен - заводишь под него вторую ветку.

Reply

mr_nekt September 27 2011, 09:56:24 UTC
лень изменения мержить дважды.

Reply

m_ivanov September 27 2011, 10:23:43 UTC
Не понял. Это претензия к описанной мной методе?

Reply

mr_nekt September 27 2011, 10:46:13 UTC
Скорее вопрос организации. Как делать так, чтобы багфиксы попадали во все версии без многократного изменений?

Reply

m_ivanov September 27 2011, 11:41:28 UTC
Поскольку разница версий заключается как-раз в наличии или отсутствии в них определенных правок, то в любом случае кто-то в какой-то момент времени должен принять решение - входит данная правка в версию или нет.

И тут два пути.

1. Решение со стороны версии. Берем версию и мержим в нее нужные правки. Придется сделать эту работу для каждой версии.

2. Решение со стороны правки. Отмечаем правку неким тегом, потом пишем некий хук, который при пуше правки в удаленный репозиторий распознает по этому тегу, к каким версиям она относится и мержит с соответствующими версиями.

Второе решения я не юзал, ничего уверенно сказать не могу.

Reply

mr_nekt September 27 2011, 12:45:56 UTC
Сложновастенько. Я все равно не вижу кроме как держать различающиеся вещи отдельно от общих. То есть модульная структура проекта и в продакшене А конфигурялка подключает один функционал, а в продакшене Б - другой.

Но таим образом продакшены будут отличаться в репозитарии только конфигом. А конфиг можно держать вне системы контроля версий. И приходим к тому, что несколько продакшенов не нужны. Или, если нужны, они находятся в разных репозитариях. А общие части подключаются через суб-репозитарии.

иначе оно как-то все не очень красиво получается.

Reply


Leave a comment

Up