Branchenauswahl mit bencher run


Ein Branch ist der git Ref (d.h. Branch-Name oder Tag). Bei Verwendung des CLI-Unterbefehls bencher run, wählen Sie einen Branch mit der Option --branch oder der Umgebungsvariablen BENCHER_BRANCH. Standardmäßig starten alle Projekte mit einem main Branch, und main wird standardmäßig verwendet, wenn keines von beiden angegeben ist.

Beim kontinuierlichen Benchmarking, das heißt Benchmarking in CI, möchte man oft einen branch auf einem bereits bestehenden Branch erstellen oder rebase durchführen. Dies wird als Branch Startpunkt bezeichnet. Ein Startpunkt ist ein anderer Branch in einer spezifischen Version (und git Hash, wenn verfügbar). Bei Verwendung des CLI-Unterbefehls bencher run, wählen Sie einen Startpunkt mit der Option --branch-start-point. Zusätzlich verwenden Sie die Option --branch-start-point-hash, um einen spezifischen git Hash für den Startpunkt anzugeben. Alle Daten und Schwellenwerte werden vom Startpunkt kopiert.

--branch <BRANCH>


Um einen Branch auszuwählen, setzen Sie die --branch Option oder die BENCHER_BRANCH Umgebungsvariable auf den Namen, den 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 jedoch der angegebene Wert eine UUID ist, muss der Branch bereits existieren. Wenn beides angegeben ist, hat die --branch Option Vorrang vor der BENCHER_BRANCH Umgebungsvariablen.

Wenn keines angegeben ist, versucht das Bencher CLI, den aktuellen git-Zweig zu finden. Es beginnt mit der Suche nach einem git-Repository im aktuellen Arbeitsverzeichnis. Falls dies erfolglos ist, setzt es seine Suche im übergeordneten Verzeichnis fort und wiederholt dies bis zum Stammverzeichnis. Wenn ein git-Repository gefunden wird, dann wird der aktuelle kurze Zweigname verwendet. Wenn jedoch kein git-Repository gefunden wird, dann wird main als Standardzweig verwendet.

--branch-start-point <BRANCH>


Verwenden Sie den angegebenen Branch-Namen, Slug oder die UUID als Startpunkt für die branch-Option. 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 --branch-start-point ist das Statistische kontinuierliche Benchmarking.

  • Wenn der angegebene Startpunkt ein leerer String ist, wird diese Option ignoriert.
  • Existiert branch nicht, wird er unter Verwendung dieses Startpunkts erstellt.
  • Existiert branch bereits und der Startpunkt ist derselbe, wird diese Option ignoriert.
  • Existiert branch bereits und der Startpunkt ist unterschiedlich, wird die alte Version von branch umbenannt und ein neuer branch wird unter Verwendung dieses aktualisierten Startpunkts erstellt.

Wenn ein neuer branch mit einem Startpunkt erstellt wird, werden alle Daten und Schwellenwerte vom angegebenen Startpunkt übernommen.

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

  1. Einen neuen Branch mit dem Namen feature_branch erstellen
  2. Alle Daten und Schwellenwerte von main zu feature_branch kopieren
  3. bencher run würde unter Verwendung von feature_branch fortgesetzt

🐰 Hinweis: Wenn Umgebungsvariablen verwendet werden, sollten sie in doppelte Anführungszeichen gesetzt werden (also --branch-start-point "$MY_BRANCH_ENV_VAR"), falls Sie möchten, dass bencher run keinen Fehler ausgibt, wenn MY_BRANCH_ENV_VAR nicht definiert ist.

--branch-start-point-hash <HASH>


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

  • Wenn branch nicht existiert, wird es vom branch-start-point am angegebenen Hash erstellt.
  • Existiert branch bereits und sowohl branch-start-point als auch der angegebene Hash sind gleich, wird diese Option ignoriert.
  • Existiert branch bereits und entweder branch-start-point oder der angegebene Hash sind unterschiedlich, wird die alte Version von branch umbenannt und ein neuer branch wird vom branch-start-point am angegebenen Hash erstellt.

Wenn ein neuer branch mit einem Startpunkt erstellt wird, dann werden alle Daten und Schwellenwerte vom branch-start-point am angegebenen Hash kopiert.

Zum Beispiel, wenn feature_branch existiert mit seinem Startpunkt als main Zweig am Hash 32aea434d751648726097ed3ac760b57107edd8b, dann würde die Verwendung von --branch feature_branch --branch-start-point main --branch-start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562:

  1. Den alten feature_branch umbenennen in feature_branch@main/hash/32aea434d751648726097ed3ac760b57107edd8b
  2. Einen neuen Zweig namens feature_branch erstellen
  3. Kopie aller Daten und Schwellenwerte von main am Hash 68b12758509ca5e2b1e3983525625e532eb5f562 zum neuen feature_branch
  4. bencher run würde mit dem neuen feature_branch fortfahren

--branch-reset


Setzt den angegebenen branch zurück. Der primäre Anwendungsfall für --branch-reset ist Relatives Kontinuierliches Benchmarking. Dieses Flag steht in Konflikt mit der Option --branch-start-point.

  • Wenn branch nicht existiert, wird er erstellt.
  • Wenn branch existiert, wird die alte Version von branch umbenannt und ein neuer branch wird erstellt.

Wenn ein neuer branch erstellt wird, wird er keine historischen Daten oder Schwellenwerte haben.

Zum Beispiel, wenn feature_branch existiert ohne einen Startpunkt, dann würde die Nutzung von --branch feature_branch --branch-reset:

  1. Den alten feature_branch in feature_branch@detached umbenennen
  2. Einen neuen Branch namens feature_branch erstellen
  3. bencher run würde mit dem neuen feature_branch fortfahren

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


Weitermachen: Benchmark Harness Adapters ➡

🤖 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, May 9, 2024 at 9:23:00 AM UTC