Выбор ветки с использованием bencher run
A Branch — это git
ссылка (например, имя ветки или тег).
При использовании подкоманды CLI bencher run
,
выберите ветку с помощью опции --branch
или переменной окружения BENCHER_BRANCH
.
По умолчанию все проекты начинают с ветки main
, и
main
используется по умолчанию, если ни одна из них не указана.
При непрерывном бенчмаркинге, то есть бенчмаркинге в CI,
вы часто захотите создать или перебазировать ветку
на уже существующей ветке.
Это называется Начальной точкой Start Point.
Начальная точка — это другая ветка на определенной версии (и git
hash, если доступно).
При использовании подкоманды CLI bencher run
,
выберите Начальную точку с помощью опции --start-point
.
Дополнительно используйте опцию --start-point-hash
для указания конкретного git
hash для Начальной точки.
Количество данных, которые копируются из Начальной точки, контролируется с помощью опции --start-point-max-versions
.
Аналогично, Пороги могут быть скопированы из Начальной точки с помощью флага --start-point-clone-thresholds
.
Чтобы предотвратить отклонение, используйте флаг --start-point-reset
, чтобы всегда сбрасывать Ветку на Начальную точку.
--branch <BRANCH>
Чтобы выбрать ветку, установите параметр --branch
или переменную окружения BENCHER_BRANCH
в имя, слаг или UUID для ветки.
Если указанное значение является именем или слагом и ветка еще не существует, она будет создана для вас.
Однако, если указанное значение является UUID, то ветка должна уже существовать.
Если оба параметра указаны, параметр --branch
имеет приоритет над переменной окружения BENCHER_BRANCH
.
Если ни один из них не указан, Bencher CLI пытается найти текущую ветку git
.
Он начинает с поиска репозитория git
в текущей рабочей директории.
Если это не удается, он продолжает в родительскую директорию и повторяет попытки вплоть до корневой директории.
Если репозиторий git
найден, используется текущее краткое имя ветки.
Однако, если репозиторий git
не найден, по умолчанию используется ветка main
.
--start-point <BRANCH>
Используйте указанное имя ветки, сокращенное название или UUID в качестве начальной точки для опции branch
. Для GitHub это обычно основная ветка для запроса на перенос, а для GitLab это обычно целевая ветка для запроса слияния. Основной случай использования --start-point
- это Statistical Continuous Benchmarking.
- Если указанная начальная точка — это пустая строка, то эта опция игнорируется.
- Если
branch
не существует, она будет создана с использованием этой начальной точки. - Если
branch
существует и начальная точка совпадает, то эта опция игнорируется. - Если
branch
существует и начальная точка отличается, будет создана новая головаbranch
с использованием этой обновленной начальной точки. - Если
branch
не существует и начальная точка не существует, тоbranch
будет создана без каких-либо исторических данных. - Если
branch
существует и начальная точка не существует, то эта опция игнорируется.
Если новая branch
создается с начальной точкой,
то последние данные и, опционально, пороги из указанной начальной точки будут скопированы.
См. опцию --start-point-max-versions
и опцию --start-point-clone-thresholds
для получения более подробной информации.
Например, если feature_branch
еще не существует, но main
существует и имеет исторические данные.
Тогда использование --branch feature_branch --start-point main
будет:
- Создать новую ветку с именем
feature_branch
- Скопировать последние данные из
main
вfeature_branch
bencher run
будет продолжен с использованиемfeature_branch
🐰 Примечание: При использовании переменных окружения их следует заключать в двойные кавычки (например,
--start-point "$MY_BRANCH_ENV_VAR"
), если вы хотите, чтобыbencher run
не вызвал ошибку, когдаMY_BRANCH_ENV_VAR
не определен.
--start-point-hash <HASH>
Используйте указанный полный хэш Git в качестве Начальной точки для опции branch
.
Эта опция требует установки опции --start-point
.
- Если
branch
не существует, он будет создан изstart-point
с указанным хэшем. - Если
branch
существует иstart-point
, и указанный хэш одинаковы, то эта опция игнорируется. - Если
branch
существует и либоstart-point
, либо указанный хэш отличаются, будет создана новая Head веткаbranch
изstart-point
с указанным хэшем. - Если
branch
не существует иstart-point
не существует с указанным хэшем, тогдаbranch
будет создан без каких-либо исторических данных. - Если
branch
существует иstart-point
не существует с указанным хэшем, то эта опция игнорируется.
Если новая branch
создается с Начальной точкой,
тогда все последние данные и, при необходимости, Пороги из start-point
с указанным хэшем копируются.
См. опцию --start-point-max-versions
и опцию --start-point-clone-thresholds
для более подробной информации.
Например, если feature_branch
существует с его Начальной точкой в ветке main
с хэшем 32aea434d751648726097ed3ac760b57107edd8b
тогда использование --branch feature_branch --start-point main --start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562
выполнит:
- Удалит старую Head ветку
feature_branch
- Создаст новую Head ветку
feature_branch
- Скопирует все последние данные из
main
с хэшем68b12758509ca5e2b1e3983525625e532eb5f562
в новую Head веткуfeature_branch
bencher run
затем продолжит использование новой Head веткиfeature_branch
--start-point-max-versions <COUNT>
Укажите максимальное количество исторических версий ветки, которые будут включены из Начальной Точки для опции branch
. Любые версии, превышающие это число, будут исключены. Значение по умолчанию — 255
версий. Эта опция требует установки опции --start-point
.
Например, если существует feature_branch
с Начальной Точкой в ветке main
, и в main
содержится 300
версий, то использование --branch feature_branch --start-point main --start-point-max-versions 100
включит в feature_branch
только последние 100
версий main
.
--start-point-clone-thresholds
Клонирует все Пороги из Точки старта для опции branch
.
Этот флаг требует установки опции --start-point
.
- Если Порог не существует, он будет создан из Порога
start-point
. - Если Порог существует и он такой же, как Порог
start-point
, то этот Порог фактически игнорируется. - Если Порог существует и его модель отличается от модели Порога
start-point
, то старая модель будет заменена моделью Порогаstart-point
. - Если Порог существует, а Порог
start-point
не существует, то модель Порога удаляется.
Например, если существует feature_branch
с Точкой старта, являющейся Веткой main
, и main
имеет Порог для встроенной localhost
Тестовой среды и показателя latency
,
то использование --branch feature_branch --start-point main --start-point-clone-thresholds
создаст новый Порог для feature_branch
с Тестовой средой localhost
и показателем latency
.
--start-point-reset
Сброс указанной ветки
. Когда установлена опция --start-point
, ветка
будет сброшена до указанной начальной точки. Это полезно для предотвращения отклонений в данных Статистического непрерывного тестирования производительности. Основной случай использования для --start-point-reset
без указания начальной точки — это Относительное непрерывное тестирование производительности.
- Если
ветка
не существует и начальная точка не указана,ветка
будет создана без каких-либо исторических данных. - Если
ветка
существует и начальная точка не указана, будет создана новая Головаветки
без каких-либо исторических данных. - Если
ветка
не существует и указана начальная точка,ветка
будет создана с использованием начальной точки. - Если
ветка
существует и указана начальная точка, будет создана новая Головаветки
с использованием начальной точки.
Если новая ветка
создается с начальной точкой, то все самые последние данные и, при необходимости, Пороги из начальной точки
на указанном хэше копируются. См. опцию --start-point-max-versions
и опцию --start-point-clone-thresholds
для получения более подробной информации.
Например, если feature_branch
существует без начальной точки, использование --branch feature_branch --start-point-reset
приведет к следующим действиям:
- Удалит старую Голову
feature_branch
- Создаст новую Голову
feature_branch
без каких-либо исторических данных bencher run
затем продолжит, используя новую Головуfeature_branch
🐰 Поздравляем! Вы узнали все о выборе ветки! 🎉