2015-08-06 1 views
0

У нас есть типичный рабочий процесс, где разработка выполняется на ветвях Git. Изменения в мастере втягиваются в ветвь функции, и по завершении ветвь функции объединяется в master (которая в основном работает без конфликтов).Как определить ответственного разработчика (ов) для сборки Jenkins в контексте ветви функции Git?

Функциональные ветви постоянно строятся на Дженкинсе (один проект на каждую ветку), особенно для запуска тестов, которые трудно выполнять на машинах разработки. Уведомление об итогах этих сборок (неудача или успех) должно быть отправлено участвующим разработчикам. С практической точки зрения вовлеченными разработчиками являются те, кто работает над ветвью функций. Не обязательно, чтобы все эти разработчики получили уведомление, достаточно было бы отправить его тому человеку, который сделал последнее изменение в ветке (значение: изменение значения ветвей HEAD).

Вопрос: Как определить тех разработчиков программно? Я знаю, что это может оказаться невозможным до 100%, цель состоит в том, чтобы найти приемлемое, но не идеальное решение.

Что-то, что не должно Случалось, что авторы фиксации, которые никогда не работали на ветке, получают уведомления. Когда мастер объединяется в ветку и после создания первоначальной ветви существует (много) авторов, не связанных с ветвью.

Я поставлю подход, который я имею в виду в качестве ответа, но меня интересует, есть ли лучшие решения.

ответ

0

Я бы взял набор всех коммитов на ветке функций и удалил все коммиты, которые появляются на главном. Это возможно с помощью git log^master branch-name. Из оставшихся коммитов я бы взял автора самой новой. В случае выталкивания от ведущего уведомление будет отправлено последнему, который совершил переход к ветке до вытягивания.

По-прежнему существует проблема, заключающаяся в том, что на ветке вообще не должно быть никаких коммитов (в смысле коммитов, недоступных от мастера). Это будет особенно характерно для первой сборки новой ветви.