Международная конференция разработчиков
и пользователей свободного программного обеспечения

Merge-a-fork или скрестим вилки

Михаил Шигорин, Киев, Украина

LVEE 2011

Source code availability might tempt to «just make a copy of it». This might lead to fragmentation which in its turn is capable of splintering the efforts, introducing incompatibilities, and even development stall — but doing it properly may also heavily help with the feature diversity. Questions to discuss are what’s a fork and a merge, the price of divergence and convergence, and joint competition.

Когда мы что-то делаем, то нередко основываемся на уже существующем и дополняем или дорабатываем его. При этом вне зависимости от того, код это, документация или конфигурация – происходит фактическое «раздвоение» объекта. И если уже существующее продолжает развиваться, то это раздвоение называется «форк». Если такие производные варианты сливаются полностью или частично, постоянно или периодически – такое объединение называется «мерж».

Форк чреват тем, что либо усилия на развитие в основе схожих вещей будут дублироваться (без малого худший случай), либо потребуются дополнительные решимость, время и силы на периодическое «втягивание» наработок коллег, либо же произойдёт загнивание менее продуктивной ветки вместе с уникальными для неё наработками.

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

Мерж чреват в первую очередь неизбежной затратой времени – как на собственно техническую часть вопроса, так и на предварительное согласование с последующей утруской и усушкой вновь образовавшихся проблем.

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

В докладе рассматриваются типичные виды, причины и последствия форков (причём всегда есть что добавить по опыту аудитории), а также более-менее соответствующие варианты мержей.

presentation