Branchenauswahl mit bencher run


Ein Branch ist der git Ref (d. h. der Branch-Name oder Tag). Beim Verwenden des bencher run CLI-Unterbefehls wählen Sie einen Branch mit der Option --branch oder der Umgebungsvariable BENCHER_BRANCH. Der aktuelle git Hash kann auch mit der Option --hash angegeben werden. Wenn kein Branch angegeben ist, wird der aktuelle git Branch-Name verwendet, wenn er verfügbar ist. Andernfalls wird main als Standard-Branch verwendet. Ähnlich, wenn der git Hash nicht angegeben ist, wird der aktuelle git Hash verwendet, wenn er verfügbar ist.

Beim Kontinuierlichen Benchmarking, d. h. Benchmarking in CI, möchten Sie oft einen branch auf einen bereits vorhandenen Branch erstellen oder rebasieren. Dies wird als Branch Startpunkt bezeichnet. Ein Startpunkt ist ein anderer Branch in einer spezifischen Version (und git Hash, falls verfügbar). Beim Verwenden des bencher run CLI-Unterbefehls, wählen Sie einen Startpunkt mit der Option --start-point. Zusätzlich nutzen Sie die Option --start-point-hash, um einen spezifischen git Hash für den Startpunkt anzugeben. Die Menge der Daten, die vom Startpunkt übernommen wird, wird mit der Option --start-point-max-versions gesteuert. Ähnlich können Schwellenwerte mit der --start-point-clone-thresholds Flagge vom Startpunkt kopiert werden. Um Drift zu verhindern, verwenden Sie die --start-point-reset Flagge, um den Branch immer auf den Startpunkt zurückzusetzen.

--branch <BRANCH>


Um einen Branch auszuwählen, setzen Sie die Option --branch oder die Umgebungsvariable BENCHER_BRANCH auf den Namen, Slug oder die UUID des Branches. Wenn der angegebene Wert ein Name oder Slug ist und der Branch noch nicht existiert, wird er für Sie erstellt. Wenn der angegebene Wert jedoch eine UUID ist, muss der Branch bereits existieren. Falls beide angegeben sind, hat die --branch Option Vorrang vor der Umgebungsvariable BENCHER_BRANCH.

Wenn keine von beiden angegeben ist, versucht das Bencher CLI, den aktuellen git Branch zu finden. Es beginnt damit, ein git Repository im aktuellen Arbeitsverzeichnis zu suchen. Falls dies nicht erfolgreich ist, geht es in das übergeordnete Verzeichnis über und versucht es erneut, bis zum Stammverzeichnis. Wenn ein git Repository gefunden wird, wird der aktuelle kurze Branch-Name verwendet. Wenn jedoch kein git Repository gefunden wird, wird main als Standardbranch verwendet.

--hash <HASH>


Ein 40-stelliger SHA-1-Commit-Hash. Wenn zwei Berichte den gleichen Branch und Hash haben, werden sie als vom selben Commit angesehen. Daher werden sie die gleiche Branch-Version Nummer haben.

Wenn nicht angegeben, versucht die Bencher CLI, den aktuellen Git-Hash zu finden. Es beginnt mit der Suche nach einem Git-Repository im aktuellen Arbeitsverzeichnis. Wenn dies nicht erfolgreich ist, wechselt es zu seinem übergeordneten Verzeichnis und wiederholt den Vorgang bis zum Stammverzeichnis. Wenn ein Git-Repository gefunden wird, dann wird der Git-Hash des HEAD der aktuellen Branch verwendet.

--start-point <BRANCH>


Verwenden Sie den angegebenen Branch-Namen, Slug oder UUID als Startpunkt für die Option branch. Für GitHub ist dies normalerweise der base Branch für einen Pull Request, und für GitLab ist dies normalerweise der target Branch für einen Merge Request. Der primäre Anwendungsfall für --start-point ist Statistisches Kontinuierliches Benchmarking.

  • Wenn der angegebene Startpunkt ein leerer String ist, wird diese Option ignoriert.
  • Wenn branch nicht existiert, wird es unter Verwendung dieses Startpunkts erstellt.
  • Wenn branch existiert und der Startpunkt derselbe ist, wird diese Option ignoriert.
  • Wenn branch existiert und der Startpunkt unterschiedlich ist, wird ein neuer branch Head mit diesem aktualisierten Startpunkt erstellt.
  • Wenn branch nicht existiert und der Startpunkt nicht existiert, wird der branch ohne historische Daten erstellt.
  • Wenn branch existiert und der Startpunkt nicht existiert, wird diese Option ignoriert.

Wenn ein neuer branch mit einem Startpunkt erstellt wird, werden die neuesten Daten und optional Schwellenwerte vom angegebenen Startpunkt übernommen. Weitere Details finden Sie in der Option --start-point-max-versions und der Option --start-point-clone-thresholds.

Zum Beispiel, wenn feature_branch noch nicht existiert, aber main existiert und historische Daten hat. Dann würde die Verwendung von --branch feature_branch --start-point main:

  1. Einen neuen Branch mit dem Namen feature_branch erstellen
  2. Die neuesten Daten von main zu feature_branch kopieren
  3. bencher run würde mit feature_branch fortfahren

🐰 Hinweis: Wann immer Umgebungsvariablen verwendet werden, sollten sie in Anführungszeichen gesetzt werden (z.B. --start-point "$MY_BRANCH_ENV_VAR"), falls bencher run nicht fehlschlagen soll, wenn MY_BRANCH_ENV_VAR nicht definiert ist.

--start-point-hash <HASH>


Verwenden Sie den angegebenen vollständigen Git-Hash als Startpunkt für die branch-Option. Diese Option erfordert, dass die --start-point-Option gesetzt ist.

  • Wenn branch nicht existiert, wird es vom start-point aus mit dem angegebenen Hash erstellt.
  • Wenn branch existiert und sowohl start-point als auch der angegebene Hash identisch sind, wird diese Option ignoriert.
  • Wenn branch existiert und entweder der start-point oder der angegebene Hash unterschiedlich sind, wird ein neuer branch-Head vom start-point aus mit dem angegebenen Hash erstellt.
  • Wenn branch nicht existiert und der start-point am angegebenen Hash nicht existiert, wird der branch ohne historische Daten erstellt.
  • Wenn branch existiert und der start-point am angegebenen Hash nicht existiert, wird diese Option ignoriert.

Wenn ein neuer branch mit einem Startpunkt erstellt wird, dann werden alle jüngsten Daten und optional Schwellenwerte vom start-point zum angegebenen Hash kopiert. Siehe die --start-point-max-versions-Option und die --start-point-clone-thresholds-Option für weitere Details.

Beispielsweise, wenn feature_branch existiert, wobei der Startpunkt der main Branch am Hash 32aea434d751648726097ed3ac760b57107edd8b ist, würde die Verwendung von --branch feature_branch --start-point main --start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562 folgendes bewirken:

  1. Entfernen des alten feature_branch-Heads
  2. Erstellen eines neuen feature_branch-Heads
  3. Kopieren aller jüngsten Daten von main am Hash 68b12758509ca5e2b1e3983525625e532eb5f562 zum neuen feature_branch-Head
  4. bencher run würde dann mit dem neuen feature_branch-Head fortfahren

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


Verwenden Sie die angegebene maximale Anzahl an historischen Zweigversionen, die vom Startpunkt für die branch-Option enthalten sein sollen. Alle Versionen, die über diese Anzahl hinausgehen, werden weggelassen. Die Standardeinstellung ist 255 Versionen. Diese Option erfordert, dass die --start-point-Option gesetzt ist.

Zum Beispiel, wenn feature_branch existiert und der Startpunkt der main-Zweig ist und main 300 Versionen hat, würde die Verwendung von --branch feature_branch --start-point main --start-point-max-versions 100 nur die neuesten 100 Versionen von main in feature_branch einschließen.

--start-point-clone-thresholds


Klonen Sie alle Schwellenwerte aus dem Startpunkt für die branch-Option. Dieses Flag erfordert, dass die --start-point-Option gesetzt ist.

  • Wenn ein Schwellenwert nicht existiert, wird er aus dem start-point-Schwellenwert erstellt.
  • Wenn ein Schwellenwert existiert und er identisch mit dem start-point-Schwellenwert ist, wird dieser Schwellenwert effektiv ignoriert.
  • Wenn ein Schwellenwert existiert und sein Modell vom start-point-Schwellenwert abweicht, wird das alte Modell durch das start-point-Schwellenwertmodell ersetzt.
  • Wenn ein Schwellenwert existiert und der start-point-Schwellenwert nicht existiert, wird das Schwellenwertmodell entfernt.

Zum Beispiel, wenn feature_branch existiert mit seinem Startpunkt als dem main Branch und main einen Schwellenwert für das integrierte localhost Testbed und Maß latency hat, dann würde die Nutzung von --branch feature_branch --start-point main --start-point-clone-thresholds einen neuen Schwellenwert für feature_branch mit dem localhost Testbed und dem Maß latency erstellen.

--start-point-reset


Setze den angegebenen branch zurück. Wenn die Option --start-point gesetzt ist, wird der branch auf den angegebenen Startpunkt zurückgesetzt. Dies ist nützlich, um Abweichungen in Statistical Continuous Benchmarking Daten zu verhindern. Der primäre Anwendungsfall für --start-point-reset ohne Angabe eines Startpunkts ist Relative Continuous Benchmarking.

  • Wenn branch nicht existiert und kein Startpunkt angegeben ist, wird der branch ohne historische Daten erstellt.
  • Wenn branch existiert und kein Startpunkt angegeben ist, wird ein neuer branch Head ohne historische Daten erstellt.
  • Wenn branch nicht existiert und ein Startpunkt angegeben ist, wird der branch mithilfe des Startpunkts erstellt.
  • Wenn branch existiert und ein Startpunkt angegeben ist, wird ein neuer branch Head mithilfe des Startpunkts erstellt.

Wenn ein neuer branch mit einem Startpunkt erstellt wird, werden alle neuesten Daten und optional Schwellenwerte vom start-point beim angegebenen Hash kopiert. Weitere Einzelheiten finden Sie in der Option --start-point-max-versions und in der Option --start-point-clone-thresholds.

Wenn beispielsweise feature_branch ohne Startpunkt existiert, dann würde die Verwendung von --branch feature_branch --start-point-reset:

  1. Den alten feature_branch Head entfernen
  2. Einen neuen feature_branch Head ohne historische Daten erstellen
  3. bencher run würde dann unter Verwendung des neuen feature_branch Head fortfahren

🐰 Glückwunsch! Sie haben alles über die Branchenauswahl gelernt! 🎉


Weiter geht’s: Schwellenwerte & Warnungen ➡

🤖 Dieses Dokument wurde automatisch von OpenAI GPT-4 generiert. Es ist möglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, öffnen Sie bitte ein Problem auf GitHub.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Thu, February 20, 2025 at 10:36:00 PM UTC