Выбор ветки с использованием bencher run
Ветка — это git ссылка (например, имя ветки или тег).
При использовании подкоманды CLI bencher run,
выберите Ветку с помощью опции --branch или переменной окружения BENCHER_BRANCH.
Текущий git хеш также может быть указан с помощью опции --hash.
Если Ветка не указана, то используется имя текущей git ветки, если оно доступно.
В противном случае, по умолчанию используется main как Ветка.
Аналогично, если git хеш не указан, используется текущий git хеш, если он доступен.
При непрерывном бенчмаркинге, то есть при бенчмаркинге в CI,
вы часто захотите создать или изменить базу branch на уже существующей Ветке.
Это называется Точка старта Start Point.
Точка старта — это другая Ветка на определенной версии (и git хеш, если доступен).
При использовании подкоманды CLI bencher run,
выберите Точку старта с помощью опции --start-point.
Кроме того, используйте опцию --start-point-hash, чтобы указать конкретный git хеш для Точки старта.
Объем данных, копируемых из Точки старта, контролируется с помощью опции --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.
--hash <HASH>
40-символьный хеш SHA-1 коммита. Если два отчета имеют одинаковые ветку и хеш, они будут считаться относящимися к одному и тому же коммиту. Следовательно, у них будет один и тот же номер версии ветки.
Если не указано, Bencher CLI пытается найти текущий git hash. Начиная с поиска git-репозитория в текущем рабочем каталоге. Если поиск неудачен, он переходит к родительскому каталогу и повторяет попытки до корневого каталога. Если git-репозиторий найден, то используется git hash HEAD текущей ветки.
--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
🐰 Поздравляем! Вы узнали все о выборе ветки! 🎉