Главная страница
Вход
Логин: Пароль:Забыли пароль?
Запомнить вас на этом компьютере?

Здравствуйте, гость ( Вход | Регистрация )

Скрыть объявления

Объявления

Форумы в Telegram - @vladforum С темами, всё как на форуме, только в Telegram!

> KDiff, решение конфликта объединения, как не дробить конфликтный блок на части?
G_Max
сообщение 12.2.2018, 11:13
Сообщение #1


НеЛиберал

Возраст: 46
Группа: Пользователи 
Сообщений: 46 964
Регистрация: 16.9.2002
Из: Владимир
Пользователь №: 1 840
Вставить ник Цитата


В параллельных ветках в модуль добавляются разные функции.
При анализе объединения двух веток прога находит в функциях одинаковые строки и дробит конфликтный блок на части. Соответственно при объединении получается не схема
"Блок В + Блок С", а "Блок В(часть 1)+Блок С(часть 1)+общая строка+Блок В(часть 2)+Блок С(часть 2)".

Пример:
Ветка В
Цитата
Функция СложитьЗначенияМассива(МассивЧисел)
Результат = 0;
Для Каждого ЭлементМассива Из МассивЧисел Цикл
Результат = Результат + ЭлементМассива;
КонецЦикла
Возврат Результат;
КонецФункции


Ветка С
Цитата
Функция СложитьЗначенияТаблицы(ТаблицаЧисел)
Результат = 0;
Для Каждого ЭлементаТаблицы Из ТаблицаЧисел Цикл
Результат = Результат + ЭлементТаблицы;
КонецЦикла
Возврат Результат;
КонецФункции


Что хочется получить на выходе?

Цитата
Функция СложитьЗначенияМассива(МассивЧисел)
Результат = 0;
Для Каждого ЭлементМассива Из МассивЧисел Цикл
Результат = Результат + ЭлементМассива;
КонецЦикла
Возврат Результат;
КонецФункции

Функция СложитьЗначенияТаблицы(ТаблицаЧисел)
Результат = 0;
Для Каждого ЭлементаТаблицы Из ТаблицаЧисел Цикл
Результат = Результат + ЭлементТаблицы;
КонецЦикла
Возврат Результат;
КонецФункции


Что позволяет сделать KDiff при решении конфликта?

Цитата
Функция СложитьЗначенияМассива(МассивЧисел) // из В
Функция СложитьЗначенияТаблицы(ТаблицаЧисел) // из C

Результат = 0; // общая строка, не вызвала конфликт

Для Каждого ЭлементМассива Из МассивЧисел Цикл // из В
Результат = Результат + ЭлементМассива; // из В

Для Каждого ЭлементаТаблицы Из ТаблицаЧисел Цикл // из C
Результат = Результат + ЭлементТаблицы; // из C

КонецЦикла // общая строка, не вызвала конфликт
Возврат Результат; // общая строка, не вызвала конфликт
КонецФункции // общая строка, не вызвала конфликт


Можно ли заставить рассматривать как один блок конфликта указанный набор строк, а не брать автооценку KDiff'а, при которой он все дробит на запчасти?

Сообщение отредактировал G_Max - 12.2.2018, 11:15


--------------------
20!9
Перейти в начало страницы
 
+Цитировать сообщение
2 страниц V  < 1 2  
Начать новую тему
Ответов (20 - 38)
abm
сообщение 13.2.2018, 16:21
Сообщение #21


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(G_Max @ 13.2.2018, 1:24) *
Да, спасибо, буду все, что в этой теме предложили курить и пробовать.
В организации будет скорее всего использоваться GitFlow(если этот вариант жестко завязан на использование плагина GitFlow). Если полноценная схема работы с удаленным репозиторием избавит от таких конфликтов, будет только хорошо.
Я не знаю что такое плагин GitFlow. Организация работы с GIT (т.е. используемый workflow) по идее должна поддерживаться всеми возможными клиентами, потому что с их стороны ничего, собственно, не меняется. Это только разные способы организации у управления ветками, хотя там и есть некоторые специфические штучки.
Я бы советовал не использовать всякие разные плагины и экстеншнс. Возьми полноценный нормальный клиент, тот же SourceTree.
На мой взгляд у него слишком усложненный интерфейс, но для "тонкой настройки" там есть все нужные прибамбасы.
Лично я использую встроенный в Visual Studio GIT, он несколько ограничен по функционалу, но покрывает 90% моих потребностей. Остальные 10% разруливаю в SourceTree.
Еще у меня живет Tortoise GIT - это расширение для виндовс экспортера, добавляет свои пункты в контекстное меню файловой системы. У него есть некоторые очень удобные фишки, ради которых я его и держу.

Насчет Gitflow workflow - я бы порекомендовал выбрать этот режим только если у вас цикл релизов жестко установлен заранее. Типа раз в две недели выкатываем новый релиз, вне зависимости от того, что мы там успели понаделать. Что успели, то и выкатываем.
Другой вариант - Feature Branches workflow больше заточен на "плавающий цикл" релизов. Типа релиз будет тогда, когда мы закончим фичи 1, 2 и 3, неважно когда мы их закончим, - завтра, через неделю или полгода.

Технически они примерно одинаковы, разница, по большому счету, в способе организации branches и принуждения разработчиков следовать некоторым правилам работы с branches.




--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
Romantic
сообщение 14.2.2018, 12:53
Сообщение #22


дауншифтер

Возраст: 41
Группа: Пользователи 
Сообщений: 4 876
Регистрация: 22.4.2001
Пользователь №: 221
Вставить ник Цитата


Специально зафиксировал как мы обычно работаем с гитом:

1. Делаем бранч на каждую фичу/фикс из dev-ветки
2. Работаем со своей веткой
3. Периодически pull-им изменения в локальную репу в ветке если над ней работают более чем один человек
4. Перед pull request'ом (или чаще, если надо) подмердживаем dev в свою ветку и разбираем конфликты если есть
5. merge в dev


--------------------
«Мы имеем дело не с законами природы, а с нашим представлением о них» Вернер Карл фон Гейзенберг
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 14.2.2018, 17:25
Сообщение #23


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(Romantic @ 14.2.2018, 5:53) *
Специально зафиксировал как мы обычно работаем с гитом:

1. Делаем бранч на каждую фичу/фикс из dev-ветки
2. Работаем со своей веткой
3. Периодически pull-им изменения в локальную репу в ветке если над ней работают более чем один человек
4. Перед pull request'ом (или чаще, если надо) подмердживаем dev в свою ветку и разбираем конфликты если есть
5. merge в dev

Этот вариант не позволяет исключать из релиза ненужные пока или незаконченные фичи.
Плюс - сильно упрощает рефакторинг.

Сообщение отредактировал abm - 14.2.2018, 17:25


--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
Romantic
сообщение 14.2.2018, 17:48
Сообщение #24


дауншифтер

Возраст: 41
Группа: Пользователи 
Сообщений: 4 876
Регистрация: 22.4.2001
Пользователь №: 221
Вставить ник Цитата


Цитата(abm @ 14.2.2018, 17:25) *
Этот вариант не позволяет исключать из релиза ненужные пока или незаконченные фичи.
Плюс - сильно упрощает рефакторинг.


Ну почему?
В нужный момент релизная ветка бранчится от dev'а и стабилизируется отдельно.


--------------------
«Мы имеем дело не с законами природы, а с нашим представлением о них» Вернер Карл фон Гейзенберг
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 14.2.2018, 18:38
Сообщение #25


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(Romantic @ 14.2.2018, 10:48) *
Ну почему?
В нужный момент релизная ветка бранчится от dev'а и стабилизируется отдельно.
Почему? Потому что:
1. Есть начальное состояние dev.
2. Из него делается branch "feature1". В какой-то момент делается merge feature1->dev.
3. Начинаем feature2 - делаем новый branch из dev.
4. Завершаем работу с feature2 и делаем merge feature2->dev
5. Прибегает начальник и говорит "делаем релиз, feature1 в релиз не идет, только feature2.
Вопрос - как?

И сопутствующий вопрос вдогонку - а как в этой модели вы хотфиксы делаете?

Сообщение отредактировал abm - 14.2.2018, 18:44


--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
G_Max
сообщение 14.2.2018, 19:23
Сообщение #26


НеЛиберал

Возраст: 46
Группа: Пользователи 
Сообщений: 46 964
Регистрация: 16.9.2002
Из: Владимир
Пользователь №: 1 840
Вставить ник Цитата


Цитата(abm @ 13.2.2018, 16:21) *
Я не знаю что такое плагин GitFlow. Организация работы с GIT (т.е. используемый workflow) по идее должна поддерживаться всеми возможными клиентами, потому что с их стороны ничего, собственно, не меняется. Это только разные способы организации у управления ветками, хотя там и есть некоторые специфические штучки.
Я бы советовал не использовать всякие разные плагины и экстеншнс. Возьми полноценный нормальный клиент, тот же SourceTree.
На мой взгляд у него слишком усложненный интерфейс, но для "тонкой настройки" там есть все нужные прибамбасы.
Лично я использую встроенный в Visual Studio GIT, он несколько ограничен по функционалу, но покрывает 90% моих потребностей. Остальные 10% разруливаю в SourceTree.
Еще у меня живет Tortoise GIT - это расширение для виндовс экспортера, добавляет свои пункты в контекстное меню файловой системы. У него есть некоторые очень удобные фишки, ради которых я его и держу.
Насчет Gitflow workflow - я бы порекомендовал выбрать этот режим только если у вас цикл релизов жестко установлен заранее. Типа раз в две недели выкатываем новый релиз, вне зависимости от того, что мы там успели понаделать. Что успели, то и выкатываем.
Другой вариант - Feature Branches workflow больше заточен на "плавающий цикл" релизов. Типа релиз будет тогда, когда мы закончим фичи 1, 2 и 3, неважно когда мы их закончим, - завтра, через неделю или полгода.
Технически они примерно одинаковы, разница, по большому счету, в способе организации branches и принуждения разработчиков следовать некоторым правилам работы с branches.

У нас предполагается именно четкий выпуск релизов по расписанию. Так что Gitflow обязателен.
Сейчас пока временно притормозили запуск использования GIT из-за малого опыта работы с ним у большинства программистов, но его не избежать. Так что упомянутые клиентов посмотрю обязательно. Надеюсь нам устроят семинар, где и позадаем практические вопросы.


--------------------
20!9
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 14.2.2018, 20:13
Сообщение #27


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(G_Max @ 14.2.2018, 12:23) *
У нас предполагается именно четкий выпуск релизов по расписанию. Так что Gitflow обязателен.
Я бы не сказал что прямо обязателен. Но с ним проще.
То же самое можно делать и с Feature branches workflow. Это все зависит не только от того, какой именно workflow используется, а еще и от того, насколько удается весь зоопарк разработчиков и тестеров (если есть) построить в правильном направлении.


--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
G_Max
сообщение 14.2.2018, 20:28
Сообщение #28


НеЛиберал

Возраст: 46
Группа: Пользователи 
Сообщений: 46 964
Регистрация: 16.9.2002
Из: Владимир
Пользователь №: 1 840
Вставить ник Цитата


Цитата(abm @ 14.2.2018, 20:13) *
Я бы не сказал что прямо обязателен. Но с ним проще.
То же самое можно делать и с Feature branches workflow. Это все зависит не только от того, какой именно workflow используется, а еще и от того, насколько удается весь зоопарк разработчиков и тестеров (если есть) построить в правильном направлении.
Не, это требование с вершины пирамиды разработчиков. Не мне решать. Вот клиентов, которые эту схему позволят - на мой выбор.


--------------------
20!9
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 14.2.2018, 20:30
Сообщение #29


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(G_Max @ 14.2.2018, 13:28) *
Не, это требование с вершины пирамиды разработчиков. Не мне решать. Вот клиентов, которые эту схему позволят - на мой выбор.
А если не секрет, вы что именно разрабатываете? Вернее, даже не так - какой IDE используется, если используется?



--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
G_Max
сообщение 14.2.2018, 20:31
Сообщение #30


НеЛиберал

Возраст: 46
Группа: Пользователи 
Сообщений: 46 964
Регистрация: 16.9.2002
Из: Владимир
Пользователь №: 1 840
Вставить ник Цитата


Цитата(abm @ 14.2.2018, 20:30) *
А если не секрет, вы что именно разрабатываете? Вернее, даже не так - какой IDE используется, если используется?
В данном случае 1С.


--------------------
20!9
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 14.2.2018, 20:47
Сообщение #31


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(G_Max @ 14.2.2018, 13:31) *
В данном случае 1С.
Я спросил про IDE потому что многие современные имеют на борту встроенную поддержку GIT. Какой IDE используется для 1С я не знаю.


--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
G_Max
сообщение 14.2.2018, 21:13
Сообщение #32


НеЛиберал

Возраст: 46
Группа: Пользователи 
Сообщений: 46 964
Регистрация: 16.9.2002
Из: Владимир
Пользователь №: 1 840
Вставить ник Цитата


Цитата(abm @ 14.2.2018, 20:47) *
Я спросил про IDE потому что многие современные имеют на борту встроенную поддержку GIT. Какой IDE используется для 1С я не знаю.

Там своя среда, своя система управления версиями. С GIT не интегрируется. Но через выгрузку всей конфигурации в текстовые(XML) файлы можно использовать стороннюю систему. Что у нас и пытаются сделать.


--------------------
20!9
Перейти в начало страницы
 
+Цитировать сообщение
Romantic
сообщение 14.2.2018, 21:54
Сообщение #33


дауншифтер

Возраст: 41
Группа: Пользователи 
Сообщений: 4 876
Регистрация: 22.4.2001
Пользователь №: 221
Вставить ник Цитата


Цитата(abm @ 14.2.2018, 18:38) *
Почему? Потому что:
1. Есть начальное состояние dev.
2. Из него делается branch "feature1". В какой-то момент делается merge feature1->dev.
3. Начинаем feature2 - делаем новый branch из dev.
4. Завершаем работу с feature2 и делаем merge feature2->dev
5. Прибегает начальник и говорит "делаем релиз, feature1 в релиз не идет, только feature2.
Вопрос - как?

И сопутствующий вопрос вдогонку - а как в этой модели вы хотфиксы делаете?


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

Ну на крайняк можно сделать revert, но это такое...

Хотфиксы обычно в следующий релиз, но если прям срочно - бранч из релизной ветки и ее сборка.


--------------------
«Мы имеем дело не с законами природы, а с нашим представлением о них» Вернер Карл фон Гейзенберг
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 14.2.2018, 22:51
Сообщение #34


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(Romantic @ 14.2.2018, 14:54) *
У нас довольно подробная согласованная с заказчиком функциональная спецификация разбитая на этапы. В рамках этапа делаем релизы, поэтому такого что фичу вдруг не релизить - такого нет. Если фича готова то она идет в текущий релиз ибо нет смысла держать ее.
Это не совсем "жесткий цикл" релизов.
У вас, фактически, релизы основаны на готовности каких-то основных фич и определены жесткие даты этой готовности. С возможностью перенести релиз каких-то некритичных фич в следующий релиз. Т.е. это частный случай как раз варианта релизов по готовности фич, а не "каждые две недели и пофиг что там готово что нет". Может и ничего не готово, тогда релиз пропускается. Но в крупных продуктах\компаниях, с достаточно большим интервалов релизов такого обычно не бывает. Всегда что-то происходит между релизами.

Цитата
Ну на крайняк можно сделать revert, но это такое...
Случаи крайянков я не рассматриваю. Мне интересны "академические" ситуации. Ясно что на крайняк можно хитроизвернуться тысячей возможных способов.

Цитата
Хотфиксы обычно в следующий релиз, но если прям срочно - бранч из релизной ветки и ее сборка.
В твоем начальном описании процесса не было сущности "релизная ветка".
Есть dev, из нее делаются новые бренчи под каждую фичу, и в нее же назад сливаются.
Исходя из этой модели мне и не понятно стало, как вы _исключаете_ из релиза какие-то фичи, которые по каким-то причинам в релиз решено не включать. Твой ответ, насколько я это понял - "такого не бывает, у нас жесткий план, т.е. запланированная фича должна пойди в определенный релиз хоть убейся, и при этом есть заранее согласованный план релизов с постоянным и фиксированным интервалом".

Что касается хотфикса в следующий релиз - ну, хотфикс и подразумевает неплановый релиз. Иначе это не хотфик, а просто фикс, который будет включен в следующий плановый релиз.



А у нас как раз режим "релиз по готовности". Т.е. заранее известно что именно должно пойти в следующий релиз, мы обсуждаем ETA, делаем прогноз на дату релиза и пошла работа. Релиза не случается, пока нужные фишки не реализованы. Если по ходу там еще что-то накопиться, то вопрос "включать\не включать" в релиз принимает менеджер продукта. Обычно это возникает когда QA не успевает полностью оттестировать release candidate и все новые фишки и фиксы, которые в него включены.
Но у нас другая branching model, которая позволяет легко управлять "включать\не включать" и выпускать хотфиксы по мере необходимости. Нам именно это важно.
Правда, в нашей модели есть проблема с зависимостями между разными фишками, но она как-то решается. Несколько громоздко, но решается. Плюсом то, что разработчиков мало, - легче разруливать dependency conflicts.


--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
Romantic
сообщение 14.2.2018, 23:28
Сообщение #35


дауншифтер

Возраст: 41
Группа: Пользователи 
Сообщений: 4 876
Регистрация: 22.4.2001
Пользователь №: 221
Вставить ник Цитата


Цитата(abm @ 14.2.2018, 22:51) *
В твоем начальном описании процесса не было сущности "релизная ветка".
Есть dev, из нее делаются новые бренчи под каждую фичу, и в нее же назад сливаются.
Исходя из этой модели мне и не понятно стало, как вы _исключаете_ из релиза какие-то фичи, которые по каким-то причинам в релиз решено не включать. Твой ответ, насколько я это понял - "такого не бывает, у нас жесткий план, т.е. запланированная фича должна пойди в определенный релиз хоть убейся, и при этом есть заранее согласованный план релизов с постоянным и фиксированным интервалом".


Ну я потом написал что в какой-то момент бранчится релизная ветка и уже стабилизируется.
А все что в активной разработке идет в dev в который потом подмердживается стабилизированный релиз.


Цитата(abm @ 14.2.2018, 22:51) *
Правда, в нашей модели есть проблема с зависимостями между разными фишками, но она как-то решается. Несколько громоздко, но решается. Плюсом то, что разработчиков мало, - легче разруливать dependency conflicts.


У нас еще проще, наверное, проект компактный, команда разработки всего 5 человек.


--------------------
«Мы имеем дело не с законами природы, а с нашим представлением о них» Вернер Карл фон Гейзенберг
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 14.2.2018, 23:43
Сообщение #36


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(Romantic @ 14.2.2018, 16:28) *
Ну я потом написал что в какой-то момент бранчится релизная ветка и уже стабилизируется.
А все что в активной разработке идет в dev в который потом подмердживается стабилизированный релиз.
Вот как раз это мне и непонятно.
В приведенной мной последовательности действий (как я понял у вас это происходит), нет никакой возможности исключить из релиза feature1 и включить только feature2, в какой бы момент вы не делали какие-то операции с релизной веткой или любыми другими ветками. Причина - feature2 _уже_ включает в себя feature1, потому что была сделана из dev с уже залитой туда feature1.

Совсем другой расклад был бы, если бы feature1 и feature2 делали из релизной ветки, а заливали назад в dev. В случае отсутствия зависимости в коде между feature1 и feature2 это позволило бы решить проблему исключения, и достаточно легко накатить хотфикс, если надо.



--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
Romantic
сообщение 15.2.2018, 0:09
Сообщение #37


дауншифтер

Возраст: 41
Группа: Пользователи 
Сообщений: 4 876
Регистрация: 22.4.2001
Пользователь №: 221
Вставить ник Цитата


Цитата(abm @ 14.2.2018, 23:43) *
Причина - feature2 _уже_ включает в себя feature1, потому что была сделана из dev с уже залитой туда feature1.


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


--------------------
«Мы имеем дело не с законами природы, а с нашим представлением о них» Вернер Карл фон Гейзенберг
Перейти в начало страницы
 
+Цитировать сообщение
abm
сообщение 15.2.2018, 2:46
Сообщение #38


BLUE LIVES MATTER

Возраст: 60
Группа: Пользователи 
Сообщений: 32 415
Регистрация: 7.8.2001
Из: White Plains, NY
Пользователь №: 473
Вставить ник Цитата


Цитата(Romantic @ 14.2.2018, 17:09) *
Ага, теперь понял что ты имеешь в виду. Ну да, есть такое.
Но так как у нас задачи мелкие то практически не возникает ситуации что в dev попадает фича, которую потом надо оттуда выковыривать по каким-то причинам.
Если же делается крупная фича, которая состоит из набора задач, то под нее выделяется отдельная ветка которая ветвится уже на задачи, она стабилизируется и уже потом мерджится в dev.

У нас маленько по-другому. Я своих "построил" на несколько другой способ.
У нас есть master, который всегда, в любой момент времени точно соответствует опубликованному релизу.
Все новые фишки создаются из него и, по завершению, сливаются _только_ в dev. dev используется для общего тестирования и проверки что все в куче нормально работает с тестового сервера, а не только локально у девелоперов. По сути dev - большая куча, куда сливается все подряд.
Когда фишки, нужные для текущего релиза закончены, берется этот самый мастер, из него делается новый бренч ReleaseCandidate01VerNNNN и уже в него сливаются _только_ те фишки, которые надо включить в релиз. И он уходит на QA сервер, к тестерам. Если они дают зеленую отмашку, то этот бренч идет в продакшн.
Если нет, - финским (в своих бренчах) ошибки и делаем новый ReleaseCandidate02NNNN из первого с добавление фиксов, и так далее. Эти же фиксы накатываются и в dev.
Сразу в момент релиза обновляется master - он соответсвует последнему ReleaseCandidateNNNN и далее следующий цикл.
Если в это же самое время есть какие-то долгоиграющие фишки, которые начались давно и не закончены к моменту релиза, то обычно каждый девелопер в свои активные бренчи делает merge из последнего мастера.
Ну и с хотфиксами тоже понятно. Если надо, из мастера создается новая ветка HotFix01NNNN, в ней делаются изменения, которые накатываются тоже и в dev, и она идет в релиз, ну и master опять таки обновляется до состояния HotFix01NNNN.



--------------------
Если я попался Вам навстречу - значит Вам со мной не по пути. instagram.com/cmex13
Перейти в начало страницы
 
+Цитировать сообщение
Romantic
сообщение 15.2.2018, 7:46
Сообщение #39


дауншифтер

Возраст: 41
Группа: Пользователи 
Сообщений: 4 876
Регистрация: 22.4.2001
Пользователь №: 221
Вставить ник Цитата


Разумно


--------------------
«Мы имеем дело не с законами природы, а с нашим представлением о них» Вернер Карл фон Гейзенберг
Перейти в начало страницы
 
+Цитировать сообщение

2 страниц V  < 1 2
  Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




RSS       Политика конфиденциальности
Легкая версия