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 vonbranch
umbenannt und ein neuerbranch
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
:
- Einen neuen Branch mit dem Namen
feature_branch
erstellen - Alle Daten und Schwellenwerte von
main
zufeature_branch
kopieren bencher run
würde unter Verwendung vonfeature_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, dassbencher run
keinen Fehler ausgibt, wennMY_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 vombranch-start-point
am angegebenen Hash erstellt. - Existiert
branch
bereits und sowohlbranch-start-point
als auch der angegebene Hash sind gleich, wird diese Option ignoriert. - Existiert
branch
bereits und entwederbranch-start-point
oder der angegebene Hash sind unterschiedlich, wird die alte Version vonbranch
umbenannt und ein neuerbranch
wird vombranch-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
:
- Den alten
feature_branch
umbenennen infeature_branch@main/hash/32aea434d751648726097ed3ac760b57107edd8b
- Einen neuen Zweig namens
feature_branch
erstellen - Kopie aller Daten und Schwellenwerte von
main
am Hash68b12758509ca5e2b1e3983525625e532eb5f562
zum neuenfeature_branch
bencher run
würde mit dem neuenfeature_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 vonbranch
umbenannt und ein neuerbranch
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
:
- Den alten
feature_branch
infeature_branch@detached
umbenennen - Einen neuen Branch namens
feature_branch
erstellen bencher run
würde mit dem neuenfeature_branch
fortfahren
🐰 Glückwunsch! Sie haben alles über die Branchenauswahl gelernt! 🎉