Значение Github Ahead / Behind Metrics - PullRequest
54 голосов
/ 11 июля 2011

Говоря простым языком (надеюсь, на простом примере), что означают метрики «вперед / позади» на ветке репозитория Github?

И каковы последствия для этой отрасли и внимания, которое она получает? Является ли "позади" плохим знаком для филиала?

Ответы [ 4 ]

68 голосов
/ 11 июля 2011

Впереди - количество коммитов в этой ветке, которых нет в базовой ветке. Ниже указано количество коммитов в базовой ветви, которых нет в этой ветви.

Впереди и сзади почти как метрика возраста. Число вперед говорит примерно о том, какое влияние ветка окажет на базовую ветвь, если она будет объединена. Число сзади говорит о том, сколько работы было выполнено в базовой ветви с момента ее запуска.

Я считаю, что задний номер действительно полезен для оценки вероятности слияния ветки. Когда в базовой ветви много работы, более вероятно, что две ветви изменили одну и ту же строку (и). Если сзади много, это признак того, что вам, вероятно, следует объединить базовую ветвь с этой веткой для синхронизации Как только вы объедините базовую ветвь с этой ветвью, позади будет 0.

64 голосов
/ 11 июля 2011

Если вы более визуальный тип, посмотрите здесь:

◈ - ◈ - A - ◈ - B
      \
        ◈ - C

A на 2 коммита позади и 0 коммитов до B
B - 0 коммитов позади и 2 коммитов впереди A
C на 1 коммит позади и 2 коммитов впереди A
C на 3 коммитов позади и на 2 коммитов впереди B

То есть «позади» означает, что другая ветвь имеет фиксацию, а другая нет, а «впереди» означает, что эта ветвь зафиксировала, а другая нет.

6 голосов
/ 11 июля 2011

Метрики, подобные тем, которые вы видите для этого проекта описания, сравнение с веткой из репо (например, master) :

  • количество новых коммитов, выполненных репозиторием GitHub, по сравнению с другой веткой другого репо: это позади коммитов: другое репо отстает по сравнению с текущим репо (см. эти коммиты ).
  • количество новых коммитов, выполненных другой веткой другого репо по сравнению с текущим репо: это опережающих коммитов: другое репо опережает по сравнению с текущим репо (см. эти коммиты ).

Технические подробности проиллюстрированы скриптом , определяющим, какие репозитории находятся впереди / позади источника :
Этоо проверке:

  • какие коммиты доступны из другой ветки, но не из локальной ветки: впереди
    git rev-list "$localref..$anotherref"
  • какие коммиты доступны из локальной ветки, ноне из другой ветки: сзади
    git rev-list "$anotherref..$localref"
1 голос
/ 26 мая 2013

Стоит отметить, что «позади» github также учитывает коммиты слияния. Вы можете проверить «позади» вещи с помощью: git log mybranch1 ^ mybranch2, и он должен показать вам такое же количество коммитов. Если у вас есть коммиты слияния, вы можете исключить их с помощью --no-merges в последней команде.

...