Merge Requests¶
После выполнения задачи в своей ветке необходимо объединить (merge) все изменения c основной веткой веткой (master/dev).
Делается это не ручным merge ветки, а созданием merge request'a (далее MR) в GitLab.
Оформление хорошего MR¶
Выбор веток¶
Внимательно посмотри из какой и в какую ветку ты создаёшь MR.
GitLabпо умолчанию вtarget branchможет ставитьmaster.
Название¶
Обязательно укажи название задачи, которую решил в этом MR.
Коротко опиши на английском, что было сделано.
Пример хорошего названия:
UCATI-231: Fixed contractors sample at project page.
Правильно названный MR легко найти среди всех открытых или уже давно смёрдженных и невозможно забыть.
Описание¶
Напиши (уже можно на русском), что ты сделал для решения задачи.
Checkbox'ы¶
В самом низу формы есть 2 checkbox'а:
Remove source branch: после merge с такой опцией из git'a будет удалена ветка, в которой выполнялась работа. Ставится практически всегда.
Squash commits: после merge с такой опцией все изменения, внесённые во время решения задачи будут применены к origin ветке как 1 commit. Особой выгоды пока нет, поэтому не включаем.
WIP¶
Иногда необходимо создать MR, как-то обозначив, что работа над ним еще не завершена. Для таких случаев в
Gitlab есть префикс work in progress (WIP:).
Во время создания MR можно руками или с помощью ссылки (Start the title with WIP) прямо под полем названия сделать свой MR WIP'нутым.
MR со статусом WIP нельзя смёрджить, но к нему уже можно писать комментарии и дискуссии.
WIP статус ставится в любой момент, его легко поставить и также легко убрать, достаточно открыть MR на редактирование и стереть префикс или же воспользоваться ссылкой (Remove the WIP: prefix from the title)
под полем ввода имени задачи.
Комментарии и дискуссия¶
Создание MR'a происходит для комфортного ревью кода, а комментарии и дискуссии — основные его инструменты.
Во время просматривания изменений, внесенных в код при решении задачи ревьюер может создать комментарий к любой строке кода и задать вопрос/сделать замечание автору.
Это открывает дискуссию, которую видно в ленте основных событий MR'а. В этой дискуссии происходит обсуждение вопроса, возникшего к коду, по необходимости в MR вносятся изменения, и после того, как все участники
приходят к компромиссу, человек открывший дискуссию её закрывает.
Мержить MR с не закрытыми дискуссиями нельзя !
Если существует необходимость открыть новую дискуссию не по коду, а в целом по MR'у, на главной странице есть поле ввода с большой зелёной кнопкой. В нем пишется вопрос, тип кнопки меняется с Comment на Start discussion и открывается новая дискуссия. Отличие дискуссии от комментариев в том, что на последние нельзя отвечать, что очень неудобно, так что в ходу дискуссии.