Branchenauswahl mit bencher run


Ein Branch ist der git Verweis (d.h. 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 aus. Standardmäßig beginnen alle Projekte mit einem main Branch, und main wird standardmäßig verwendet, wenn keiner der beiden angegeben wird.

Bei Kontinuierlichem Benchmarking, das heißt Benchmarking in CI, möchten Sie oft einen branch auf einem bereits vorhandenen Branch erstellen oder erneut basieren. Dies wird als Branch Ausgangspunkt bezeichnet. Ein Ausgangspunkt ist ein anderer Branch in einer bestimmten Version (und git Hash, falls verfügbar). Beim Verwenden des bencher run CLI-Unterbefehls, wählen Sie einen Ausgangspunkt mit der Option --start-point. Zusätzlich verwenden Sie die Option --start-point-hash, um einen bestimmten git Hash für den Ausgangspunkt anzugeben. Die Menge der Daten, die vom Ausgangspunkt kopiert werden, wird mit der Option --start-point-max-versions gesteuert. Ähnlich können Schwellenwerte vom Ausgangspunkt mit dem Flag --start-point-clone-thresholds kopiert werden. Um Abweichungen zu verhindern, verwenden Sie das Flag --start-point-reset, um den Branch immer auf den Ausgangspunkt 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.

--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: Sun, October 13, 2024 at 12:36:00 PM UTC