Выбор ветки с использованием 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 будет:

  1. Создать новую ветку с именем feature_branch
  2. Скопировать последние данные из main в feature_branch
  3. 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 выполнит:

  1. Удалит старую Head ветку feature_branch
  2. Создаст новую Head ветку feature_branch
  3. Скопирует все последние данные из main с хэшем 68b12758509ca5e2b1e3983525625e532eb5f562 в новую Head ветку feature_branch
  4. 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 приведет к следующим действиям:

  1. Удалит старую Голову feature_branch
  2. Создаст новую Голову feature_branch без каких-либо исторических данных
  3. bencher run затем продолжит, используя новую Голову feature_branch

🐰 Поздравляем! Вы узнали все о выборе ветки! 🎉


Продолжайте изучение материал: Пороговые значения и уведомления ➡

🤖 Этот документ был автоматически создан OpenAI GPT-4. Оно может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Sun, October 13, 2024 at 12:36:00 PM UTC