bencher runでのブランチ選択
git
参照(つまり、ブランチ名やタグ)はBranch
です。
bencher run
CLIサブコマンドを使用する場合、
--branch
オプションまたはBENCHER_BRANCH
環境変数でBranchを選択します。
デフォルトでは、すべてのプロジェクトはmain
ブランチから始まり、
指定されていない場合、デフォルトでmain
が使用されます。
継続的ベンチマーク、つまりCIでのベンチマークを行う場合、
既存のブランチに基づいてbranch
を作成したり、リベースしたりすることがよくあります。
これはブランチのスタートポイントと呼ばれます。
スタートポイントは、特定のバージョン(および利用可能であればgit
ハッシュ)である別のブランチです。
bencher run
CLIサブコマンドを使用する場合、
--branch-start-point
オプションでスタートポイントを選択します。
さらに、--branch-start-point-hash
オプションを使用して、スタートポイントの特定のgit
ハッシュを指定します。
すべてのデータと閾値はスタートポイントからコピーされます。
--branch <BRANCH>
ブランチを選択するには、--branch
オプションまたは BENCHER_BRANCH
環境変数を、
ブランチの名前、スラグ、またはUUIDに設定します。
指定された値が名前またはスラグで、ブランチがまだ存在しない場合は、そのブランチが作成されます。
しかし、指定された値がUUIDの場合は、そのブランチは既に存在していなければなりません。
両方が指定された場合、--branch
オプションが BENCHER_BRANCH
環境変数より優先されます。
指定されていない場合、Bencher CLIは現在のgit
ブランチを見つけようとします。
まず、現在の作業ディレクトリでgit
リポジトリを探します。
成功しない場合は、親ディレクトリに移動してルートディレクトリまで再試行します。
git
リポジトリが見つかった場合は、現在の短いブランチ名が使用されます。
しかし、git
リポジトリが見つからない場合は、main
がデフォルトのブランチとして使用されます。
--branch-start-point <BRANCH>
特定のブランチ名、スラッグ、またはUUIDを開始点として使用し、branch
オプション用のスタートポイントとします。
GitHubでは通常、プルリクエストの基本ブランチ (base
ブランチ)がこれにあたり、GitLabではマージリクエストの目標ブランチ (target
ブランチ)がこれにあたります。
--branch-start-point
の主な使用ケースは統計的継続的ベンチマーキングです。
- 指定された開始点が空文字列の場合、このオプションは無視されます。
branch
が存在しない場合は、この開始点を使用して作成されます。branch
が存在し、開始点が同じ場合、このオプションは無視されます。branch
が存在し、開始点が異なる場合、 既存のbranch
の名前が変更され、 この更新された開始点を使用して新しいbranch
が作成されます。
開始点を持つ新しいbranch
が作成されると、
指定された開始点からすべてのデータとしきい値がコピーされます。
例えば、feature_branch
がまだ存在せず、main
が存在して履歴データを持っている場合、
--branch feature_branch --branch-start-point main
を使用すると:
feature_branch
という名前の新しいブランチが作成されるmain
からfeature_branch
に全てのデータとしきい値がコピーされるbencher run
はfeature_branch
を使用して進行します
🐰 注意: 環境変数を使用する場合は、二重引用符で囲むべきです(例
--branch-start-point "$MY_BRANCH_ENV_VAR"
)、MY_BRANCH_ENV_VAR
が未定義の場合にbencher run
がエラーにならないようにする場合。
--branch-start-point-hash <HASH>
branch
オプションのスタートポイントとして指定された完全なGitハッシュを使用します。
このオプションは、--branch-start-point
オプションが設定されている場合にのみ必要です。
branch
が存在しない場合、指定されたハッシュでbranch-start-point
から作成されます。branch
が存在し、branch-start-point
と指定されたハッシュが同じ場合、 このオプションは無視されます。branch
が既に存在し、branch-start-point
または指定されたハッシュが異なる場合、 古いバージョンのbranch
はリネームされ、 指定されたハッシュでbranch-start-point
から新しいbranch
が作成されます。
新しいbranch
がスタートポイントで作成される場合、
指定されたハッシュでのbranch-start-point
からすべてのデータとしきい値がコピーされます。
例えば、feature_branch
がそのスタートポイントがmain
ブランチでハッシュ32aea434d751648726097ed3ac760b57107edd8b
で存在する場合、
--branch feature_branch --branch-start-point main --branch-start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562
を使用すると:
- 古い
feature_branch
をfeature_branch@main/hash/32aea434d751648726097ed3ac760b57107edd8b
にリネームします。 feature_branch
という新しいブランチを作成します。main
のハッシュ68b12758509ca5e2b1e3983525625e532eb5f562
からすべてのデータとしきい値を新しいfeature_branch
にコピーします。bencher run
は新しいfeature_branch
を使用して実行されます。
--branch-reset
指定された branch
をリセットします。
--branch-reset
の主な使用例は[相対的継続ベンチマーキング][relative continuous benchmarking]です。
このフラグは --branch-start-point
オプションと競合します。
branch
が存在しない場合、作成されます。branch
が存在する場合、旧バージョンのbranch
がリネームされ、 新しいbranch
が作成されます。
新しい branch
が作成されると、過去のデータやしきい値は含まれません。
例えば、スタートポイントのない feature_branch
が存在する場合、
--branch feature_branch --branch-reset
を使用すると次のようになります。
- 古い
feature_branch
をfeature_branch@detached
にリネーム feature_branch
という名前の新しいブランチを作成bencher run
は新しいfeature_branch
を使用して進行します
🐰 おめでとうございます!ブランチ選択に関するすべてを学びました!🎉