bencher runでのブランチ選択


A Branch は git のリファレンス(つまり、ブランチ名やタグ)です。bencher run CLI サブコマンドを使用する際に、--branch オプションまたは BENCHER_BRANCH 環境変数でブランチを選択します。デフォルトでは、すべてのプロジェクトは main ブランチから始まり、それらの指定がない場合は main がデフォルトで使用されます。

継続的ベンチマーキング、つまり CI でのベンチマーキングでは、既存のブランチ上に branch を作成またはリベースしたいことがよくあります。これをブランチスタートポイントと呼びます。スタートポイントは特定のバージョン(および利用可能であれば git ハッシュ)の別のブランチです。bencher run CLI サブコマンドを使用する際に、--start-point オプションでスタートポイントを選択します。さらに、--start-point-hash オプションを使ってスタートポイントの特定の git ハッシュを指定します。スタートポイントからコピーされるデータの量は、--start-point-max-versions オプションで制御します。同様に、しきい値--start-point-clone-thresholds フラグでスタートポイントからコピーできます。ドリフトを防ぐために、--start-point-reset フラグを使用してブランチを常にスタートポイントにリセットします。

--branch <BRANCH>


Branchを選択するには、--branch オプションまたは BENCHER_BRANCH 環境変数を、Branchの名前、スラッグ、またはUUIDに設定します。 指定された値が名前またはスラッグであり、Branchが既に存在しない場合、自動的に作成されます。 一方、指定された値がUUIDの場合はそのBranchが既に存在している必要があります。 両方が指定された場合、--branch オプションが BENCHER_BRANCH 環境変数より優先されます。

どちらも指定されていない場合、Bencher CLIは現在の git ブランチを探します。 まず、現在の作業ディレクトリ内で git リポジトリを探します。 見つからない場合は、親ディレクトリに進み、ルートディレクトリまで再試行します。 git リポジトリが見つかった場合は、現在の短縮ブランチ名が使用されます。 しかし、git リポジトリが見つからない場合は、main がデフォルトのBranchとして使用されます。

--start-point <BRANCH>


指定されたブランチ名、スラッグ、またはUUIDを開始ポイントとしてブランチオプションで使用します。 GitHubでは通常、プルリクエストのbaseブランチとして使用され、 GitLabでは通常、マージリクエストのtargetブランチとして使用されます。 --start-pointの主な使用ケースは統計的継続ベンチマーキングです。

  • 指定された開始ポイントが空文字列の場合、このオプションは無視されます。
  • 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 runfeature_branchを使用して続行する

🐰 注: 環境変数を使用する際は、必ずダブルクォーテーションで囲むべきです(例: --start-point "$MY_BRANCH_ENV_VAR")。 MY_BRANCH_ENV_VARが未定義であってもbencher runがエラーとなることを避けたい場合。

--start-point-hash <HASH>


指定された完全なGitハッシュをbranchオプションのためのスタートポイントとして使用します。このオプションは --start-pointオプションが設定されていることを必要とします。

  • branchが存在しない場合は、指定されたハッシュでstart-pointから作成されます。
  • branchが存在し、start-pointと指定されたハッシュが同じ場合、このオプションは無視されます。
  • branchが存在し、start-pointまたは指定されたハッシュが異なる場合、新しいbranchHeadが指定されたハッシュで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. 古いfeature_branchHeadが削除されます。
  2. 新しいfeature_branch Headが作成されます。
  3. mainのハッシュ68b12758509ca5e2b1e3983525625e532eb5f562からの最新データが新しいfeature_branch Headにコピーされます。
  4. その後、bencher runは新しいfeature_branch Headを使用して進行します。

--start-point-max-versions <COUNT>


指定された最大数の履歴ブランチバージョンをbranch オプションの開始ポイントから含めるようにします。 この数を超えるバージョンは省略されます。 デフォルトは255バージョンです。 このオプションを使用するには、--start-point オプションを設定する必要があります。

例えば、feature_branchが存在し、その開始ポイントがmainブランチであり、 main300バージョンある場合、 --branch feature_branch --start-point main --start-point-max-versions 100を使用すると、 mainの最新の100バージョンのみがfeature_branchに含まれます。

--start-point-clone-thresholds


branchオプションのためにStart PointからすべてのThresholdsをクローンします。このフラグを使用するには、the --start-point optionを設定する必要があります。

  • Thresholdが存在しない場合、start-point Thresholdから作成されます。
  • Thresholdが存在し、かつstart-point Thresholdと同じである場合、そのThresholdは事実上無視されます。
  • Thresholdが存在し、そのモデルがstart-point Thresholdと異なる場合、古いモデルはstart-point Thresholdモデルで置き換えられます。
  • Thresholdが存在し、start-point Thresholdが存在しない場合、そのThresholdモデルは削除されます。

例えば、feature_branchが存在し、そのStart Pointがmainブランチであり、mainには組み込みのlocalhost Testbedとlatency MeasureのためのThresholdが存在する場合、--branch feature_branch --start-point main --start-point-clone-thresholdsを使用すると、localhost Testbedとlatency Measureを持つ新しいThresholdがfeature_branchに作成されます。

--start-point-reset


指定された branch をリセットします。 --start-point オプションが設定されている場合、 branch は指定されたスタートポイントにリセットされます。 これは統計的継続的ベンチマーキングデータのドリフトを防ぐのに役立ちます。 スタートポイントを指定しない --start-point-reset の主な使用ケースは相対的継続的ベンチマーキングです。

  • branch が存在せず、スタートポイントが指定されていない場合、branch は履歴データなしで作成されます。
  • branch が存在し、スタートポイントが指定されていない場合、 新しい branch Head が履歴データなしで作成されます。
  • branch が存在せず、スタートポイントが指定されている場合、 スタートポイントを使用して branch が作成されます。
  • branch が存在し、スタートポイントが指定されている場合、 スタートポイントを使用して新しい branch Head が作成されます。

スタートポイントで新しい branch が作成された場合、 指定されたハッシュで start-point から最新のデータとオプションでしきい値がコピーされます。 詳細は --start-point-max-versions オプション --start-point-clone-thresholds オプションを参照してください。

例えば、feature_branch がスタートポイントなしで存在している場合に、 --branch feature_branch --start-point-reset を使用すると:

  1. 古い feature_branch Head を削除します
  2. 履歴データなしで新しい feature_branch Head を作成します
  3. bencher run が新しい feature_branch Head を使用して続行されます

🐰 おめでとうございます!ブランチ選択に関するすべてを学びました!🎉


次へ進む: 閾値 & アラート ➡

🤖 このドキュメントは 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