Из глубин Майкрософта в прошлом году всплыло стади о том как бранчи влияют на изоляцию и живучесть.
Изоляция --как много конфликтов было предотвращено из-за бранчей. Это показатель полезности созданной ветки; если конфликтов при слиянии не было или было очень мало, бранч имел мало смысла.
Живучесть (liveness)--как быстро происходит обратная интеграция.
Обратная интеграция --перенос изменений обратно в родительскую ветку.
Transit time (не знаю как это по русски)--интервал между чекином и и временем, когда он достигнет родительской ветки. Низкое TT приводит к высокой живучести.
В бумаге описаны 13 антипаттернов при бранчинге, из которых 2 мои любимые, <8 <8 <8 ггг
- Runaway--branching for single purpose evolves to multi-purpose branch for unrelated task.
- Integration wall--using branches to divide the development team members, instead of dividing work.
В стади в Майкрософте смотрели на Windows 7 рипо и симулировали удаление бранчей для создания альтернативной истории.
Оказалось.
- Глубина дерева бранчей не оказывает влияния на живучесть. Т.е. некоторые имеют мнение, что глубокие бранчи это плохо, но они неправы. Вся задержка в обратной интеграции происходит из-за бранчей возле корня.
- Бранчи делятся на 3 типа: овцы (хорошие ветки), козлища (плохие ветки) и гибридные (такое). Пропорция (%): 25, 25, 50. Овцы приносят высокую живучесть и изоляцию, козлища--низкую живучесть и плохую изоляцию.
- Если убрать только плохие ветки, это уменьшило бы задержку в обратной интеграции в среднем на 8.9 дней per edit и принесло дополнительно 0.04 дополнительных конфликта. А если удалить овец, задержка уменьшается всего на 2.3 дня, но появится 0.22 конфликта.
Btw, буржуи в злом Майкрософте на обратную интеграцию специально выделяют 1 человека в команде.
Attachments:
+1'd by:
Изоляция --как много конфликтов было предотвращено из-за бранчей. Это показатель полезности созданной ветки; если конфликтов при слиянии не было или было очень мало, бранч имел мало смысла.
Живучесть (liveness)--как быстро происходит обратная интеграция.
Обратная интеграция --перенос изменений обратно в родительскую ветку.
Transit time (не знаю как это по русски)--интервал между чекином и и временем, когда он достигнет родительской ветки. Низкое TT приводит к высокой живучести.
В бумаге описаны 13 антипаттернов при бранчинге, из которых 2 мои любимые, <8 <8 <8 ггг
- Runaway--branching for single purpose evolves to multi-purpose branch for unrelated task.
- Integration wall--using branches to divide the development team members, instead of dividing work.
В стади в Майкрософте смотрели на Windows 7 рипо и симулировали удаление бранчей для создания альтернативной истории.
Оказалось.
- Глубина дерева бранчей не оказывает влияния на живучесть. Т.е. некоторые имеют мнение, что глубокие бранчи это плохо, но они неправы. Вся задержка в обратной интеграции происходит из-за бранчей возле корня.
- Бранчи делятся на 3 типа: овцы (хорошие ветки), козлища (плохие ветки) и гибридные (такое). Пропорция (%): 25, 25, 50. Овцы приносят высокую живучесть и изоляцию, козлища--низкую живучесть и плохую изоляцию.
- Если убрать только плохие ветки, это уменьшило бы задержку в обратной интеграции в среднем на 8.9 дней per edit и принесло дополнительно 0.04 дополнительных конфликта. А если удалить овец, задержка уменьшается всего на 2.3 дня, но появится 0.22 конфликта.
Btw, буржуи в злом Майкрософте на обратную интеграцию специально выделяют 1 человека в команде.
Attachments:
research.microsoft.com/pubs/172572/bird-fse-2012.pdf
+1'd by:
Permalink: https://plus.google.com/115290581164606462017/posts/K1xSpQ6uBcU