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

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

  1. Переименует старый feature_branch в feature_branch@main/hash/32aea434d751648726097ed3ac760b57107edd8b
  2. Создаст новую ветку с именем feature_branch
  3. Копирует все данные и Пороги из main с хешем 68b12758509ca5e2b1e3983525625e532eb5f562 в новый feature_branch
  4. bencher run будет произведен с использованием нового feature_branch

--branch-reset


Сбросить указанную ветку. Основной сценарий использования для --branch-reset это Относительное Непрерывное Бенчмаркинг. Этот флаг конфликтует с опцией --branch-start-point.

  • Если ветка не существует, она будет создана.
  • Если ветка существует, старая версия ветки будет переименована, и будет создана новая ветка.

Когда создается новая ветка, у нее не будет исторических данных или Порогов.

Например, если feature_branch существует без Начальной Точки, то использование --branch feature_branch --branch-reset приведет к тому, что:

  1. Старая feature_branch будет переименована в feature_branch@detached
  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: Thu, May 9, 2024 at 9:23:00 AM UTC