May. 19th, 2013

henry_flower: A melancholy wolf (Default)
Из глубин Майкрософта в прошлом году всплыло стади о том как бранчи влияют на изоляцию и живучесть.

Изоляция --как много конфликтов было предотвращено из-за бранчей. Это показатель полезности созданной ветки; если конфликтов при слиянии не было или было очень мало, бранч имел мало смысла.

Живучесть (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:
  1. Udger R

Permalink: https://plus.google.com/115290581164606462017/posts/K1xSpQ6uBcU

June 2025

M T W T F S S
      1
2345678
91011 12131415
16171819202122
23242526272829
30      

Expand Cut Tags

No cut tags