Выбор ветки с использованием bencher run
Ветка - это ссылка git
(то есть имя ветки или тег).
При использовании подкоманды CLI bencher run
,
выберите Ветку с помощью опции --branch
или переменной окружения BENCHER_BRANCH
.
По умолчанию все проекты начинаются с Ветки main
, и
main
используется по умолчанию, если ни один из них не указан.
При Постоянном Бенчмаркинге, то есть бенчмаркинге в CI,
вы часто захотите создать или перебазировать branch
на уже существующей Ветке.
Это называется Начальной Точкой Ветки Start Point.
Начальная Точка - это другая Ветка в конкретной версии (и git
хэш, если доступен).
При использовании подкоманды CLI bencher run
,
выберите Начальную Точку с помощью опции --branch-start-point
.
Кроме того, используйте опцию --branch-start-point-hash
для указания конкретного git
хэша для Начальной Точки.
Вся информация и Пороги копируются из Начальной Точки.
--branch <BRANCH>
Чтобы выбрать ветку, установите опцию --branch
или переменную окружения BENCHER_BRANCH
в имя, слаг или UUID нужной ветки.
Если указанное значение является именем или слагом и ветка ещё не существует, она будет создана для вас.
Однако, если указанное значение является UUID, тогда ветка должна уже существовать.
Если указаны оба параметра, опция --branch
имеет приоритет над переменной окружения BENCHER_BRANCH
.
Если ни одно из условий не указано, CLI Bencher пытается найти текущую ветку git
.
Сначала он ищет репозиторий git
в текущем рабочем каталоге.
Если это не удаётся, он переходит к родительскому каталогу и повторяет попытку, поднимаясь до корневого каталога.
Если репозиторий git
найден, то используется имя текущей короткой ветки.
Однако, если репозиторий git
не найден, то в качестве ветки по умолчанию используется main
.
--branch-start-point <BRANCH>
Используйте указанное имя ветки, слаг или UUID как Начальную точку для параметра branch
.
Для GitHub это обычно базовая ветка для Pull Request,
а для GitLab это обычно целевая ветка для Merge Request.
Основной случай использования для --branch-start-point
- Статистическое непрерывное бенчмаркинг.
- Если указанная Начальная точка является пустой строкой, то этот параметр игнорируется.
- Если
branch
не существует, он будет создан с использованием этой Начальной точки. - Если
branch
уже существует и Начальная точка та же, то этот параметр игнорируется. - Если
branch
существует и Начальная точка другая, старая версияbranch
будет переименована, и новаяbranch
будет создана с использованием этой обновленной Начальной точки.
Если новая branch
создана с Начальной точкой,
то все данные и пороги из указанной Начальной точки копируются.
Например, если feature_branch
еще не существует, но main
существует и имеет исторические данные.
Тогда использование --branch feature_branch --branch-start-point main
приведет к:
- Созданию новой ветки с именем
feature_branch
- Копированию всех данных и порогов из
main
вfeature_branch
- Запуску
bencher run
с использованиемfeature_branch
🐰 Примечание: При использовании переменных среды их следует заключать в двойные кавычки (например,
--branch-start-point "$MY_BRANCH_ENV_VAR"
), если вы хотите, чтобыbencher run
не завершился с ошибкой, когдаMY_BRANCH_ENV_VAR
не определена.
--branch-start-point-hash <HASH>
Используйте указанный полный хеш Git как Начальную точку для опции branch
.
Для этой опции необходимо установить опцию --branch-start-point
.
- Если
branch
не существует, он будет создан изbranch-start-point
с указанным хешом. - Если
branch
уже существует иbranch-start-point
и указанный хеш совпадают, тогда данная опция игнорируется. - Если
branch
уже существует и либоbranch-start-point
, либо указанный хеш отличаются, старая версияbranch
будет переименована, и новыйbranch
будет создан изbranch-start-point
с указанным хешом.
Если новая branch
создается с Начальной точкой,
то все данные и Пороги из branch-start-point
с указанным хешом копируются.
Например, если feature_branch
существует с его Начальной точкой, являющейся веткой main
с хешем 32aea434d751648726097ed3ac760b57107edd8b
,
тогда использование --branch feature_branch --branch-start-point main --branch-start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562
:
- Переименует старый
feature_branch
вfeature_branch@main/hash/32aea434d751648726097ed3ac760b57107edd8b
- Создаст новую ветку с именем
feature_branch
- Копирует все данные и Пороги из
main
с хешем68b12758509ca5e2b1e3983525625e532eb5f562
в новыйfeature_branch
bencher run
будет произведен с использованием новогоfeature_branch
--branch-reset
Сбросить указанную ветку
.
Основной сценарий использования для --branch-reset
это Относительное Непрерывное Бенчмаркинг.
Этот флаг конфликтует с опцией --branch-start-point
.
- Если
ветка
не существует, она будет создана. - Если
ветка
существует, старая версияветки
будет переименована, и будет создана новаяветка
.
Когда создается новая ветка
, у нее не будет исторических данных или Порогов.
Например, если feature_branch
существует без Начальной Точки,
то использование --branch feature_branch --branch-reset
приведет к тому, что:
- Старая
feature_branch
будет переименована вfeature_branch@detached
- Будет создана новая Ветка с именем
feature_branch
bencher run
будет продолжен с использованием новойfeature_branch
🐰 Поздравляем! Вы узнали все о выборе ветки! 🎉