Выбор ветки с использованием bencher run


Ветвь является ссылкой git (то есть именем ветки или тегом). При использовании подкоманды CLI bencher run выберите Ветвь с помощью опции --branch или переменной окружения BENCHER_BRANCH. По умолчанию все проекты начинаются с ветки main, и main используется по умолчанию, если другая ветвь не указана.

При непрерывном бенчмаркинге, то есть при выполнении бенчмаркинга в CI, вы часто захотите создать или переместить ветвь в существующую Ветвь. Это называется Точкой Начала Ветви Start Point. Точка Начала — это другая Ветвь на определенной версии (и git хэш, если доступно). При использовании подкоманды CLI bencher run, выберите Точку Начала с помощью опции --branch-start-point. Дополнительно используйте опцию --branch-start-point-hash для указания определенного git хэша для Точки Начала. Все данные и Пороги копируются из Точки Начала. Чтобы избежать расхождений, используйте флаг --branch-reset для всегда сброса Ветви к Точке Начала.

--branch <BRANCH>


Чтобы выбрать ветку, установите опцию --branch или переменную окружения BENCHER_BRANCH в имя, слаг или UUID нужной ветки. Если указанное значение является именем или слагом и ветка ещё не существует, она будет создана для вас. Однако, если указанное значение является UUID, тогда ветка должна уже существовать. Если указаны оба параметра, опция --branch имеет приоритет над переменной окружения BENCHER_BRANCH.

Если ни одно из условий не указано, CLI Bencher пытается найти текущую ветку git. Сначала он ищет репозиторий git в текущем рабочем каталоге. Если это не удаётся, он переходит к родительскому каталогу и повторяет попытку, поднимаясь до корневого каталога. Если репозиторий git найден, то используется имя текущей короткой ветки. Однако, если репозиторий git не найден, то в качестве ветки по умолчанию используется main.

--branch-start-point <BRANCH>


Используйте указанное имя ветки, слаг или UUID в качестве начальной точки для опции branch. Для GitHub это обычно ветка base для Pull Request, а для GitLab это обычно целевой ветка для Merge Request. Основной сценарий использования --branch-start-point - Статистическое непрерывное бенчмаркирование.

  • Если указанная начальная точка является пустой строкой, то эта опция игнорируется.
  • Если branch не существует, он будет создан с использованием этой начальной точки.
  • Если branch существует и начальная точка совпадает, то эта опция игнорируется.
  • Если branch существует и начальная точка отличается, старая версия 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 не существует на указанном хеше, то 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@archive-suffix и заархивирует его
  2. Создаст новую Ветку с именем feature_branch
  3. Скопирует все данные и Пороги из main на хеше 68b12758509ca5e2b1e3983525625e532eb5f562 в новый feature_branch
  4. bencher run будет выполняться с использованием нового feature_branch

--branch-reset


Сброс указанной ветки. Когда опция --branch-start-point установлена, ветка будет сброшена до указанной Начальной Точки. Это полезно для предотвращения отклонений в данных Статистического Непрерывного Тестирования. Основной случай использования --branch-reset без указания Начальной Точки — Относительное Непрерывное Тестирование.

  • Если ветка не существует и Начальная Точка не указана, ветка будет создана без исторических данных.
  • Если ветка существует и Начальная Точка не указана, старая версия ветки будет переименована и заархивирована, и будет создана новая ветка без исторических данных.
  • Если ветка не существует и указана Начальная Точка, ветка будет создана, используя Начальную Точку.
  • Если ветка существует и указана Начальная Точка, старая версия ветки будет переименована и заархивирована, и будет создана новая ветка, используя Начальную Точку.

Если новая ветка создается с Начальной Точкой, то все данные и Пороги из указанной Начальной Точки копируются. В противном случае, ветка будет создана без исторических данных.

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

  1. Переименованию старой feature_branch в feature_branch@archive-suffix и архивированию
  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: Invalid Date