bencher runでのブランチ選択


Branchはgitの参照(例えばブランチ名やタグ)です。 bencher run CLIサブコマンドを使用する際は、 --branchオプションかBENCHER_BRANCH環境変数を使ってBranchを選択します。 デフォルトでは、すべてのプロジェクトはmainブランチから始まり、 どちらも指定しない場合はmainがデフォルトとして使用されます。

連続ベンチマーク、つまりCIでのベンチマークの際には、 既存のBranchに対してブランチを作成またはリベースしたいことがよくあります。 これをBranchの開始ポイントと呼びます。 開始ポイントは、特定のバージョン(と可能ならgitハッシュ)の別のBranchです。 bencher run CLIサブコマンドを使用する際は、 --branch-start-pointオプションで開始ポイントを選択します。 さらに、--branch-start-point-hashオプションを用いて開始ポイントの特定のgitハッシュを指定します。 すべてのデータとしきい値が開始ポイントからコピーされます。 ドリフトを防ぐために、--branch-resetフラグを使って常にブランチを開始ポイントにリセットするようにします。

--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が存在せず、開始点も存在しない場合、 branchは履歴データなしで作成されます。
  • branchが存在し、開始点が存在しない場合、 このオプションは無視されます。

新しいbranchが開始点を使用して作成された場合、 指定された開始点からすべてのデータとしきい値がコピーされます。

例えば、feature_branchがまだ存在しないが、mainは存在し、履歴データを持っている場合。 --branch feature_branch --branch-start-point mainを使用すると:

  1. feature_branchという名前の新しいブランチが作成されます
  2. mainからfeature_branchへすべてのデータとしきい値がコピーされます
  3. bencher runfeature_branchを使用して実行されます

🐰 注意: 環境変数を使用する場合、環境変数はダブルクォートで囲む必要があります(例: --branch-start-point "$MY_BRANCH_ENV_VAR")。 これは、MY_BRANCH_ENV_VARが未定義の場合にbencher runがエラーを出さないようにするためです。

--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_branchmainブランチのハッシュ32aea434d751648726097ed3ac760b57107edd8bを開始ポイントとして存在する場合、--branch feature_branch --branch-start-point main --branch-start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562を使用すると:

  1. 古いfeature_branchfeature_branch@archive-suffixにリネームし、アーカイブします。
  2. 新しいブランチ名feature_branchを作成します。
  3. ハッシュ68b12758509ca5e2b1e3983525625e532eb5f562の時点でのmainからすべてのデータと閾値を新しいfeature_branchにコピーします。
  4. bencher runは新しいfeature_branchを使用して進行します。

--branch-reset


指定した branch をリセットします。 --branch-start-point オプションが設定されている場合、 branch は指定された開始地点にリセットされます。 これは、統計的連続ベンチマーク データのドリフトを防ぐのに便利です。 開始地点を指定しない --branch-reset の主な使用用途は 相対連続ベンチマーク です。

  • branch が存在せず、開始地点も指定されていない場合、branch は履歴データなしで作成されます。
  • branch が存在し、開始地点が指定されていない場合、 古い branch は名前が変更されてアーカイブされ、 新しい branch が履歴データなしで作成されます。
  • branch が存在せず、開始地点が指定されている場合、 指定された開始地点を使用して branch が作成されます。
  • branch が存在し、開始地点が指定されている場合、 古い branch は名前が変更されてアーカイブされ、 指定された開始地点を使用して新しい branch が作成されます。

開始地点を指定して新しい branch が作成された場合、 指定された開始地点のすべてのデータとしきい値がコピーされます。 それ以外の場合、branch は履歴データなしで作成されます。

例えば、feature_branch が開始地点なしで存在している場合、 --branch feature_branch --branch-reset を使用すると:

  1. 古い feature_branchfeature_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