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 neuerbranch
Head mit diesem aktualisierten Startpunkt erstellt. - Wenn
branch
nicht existiert und der Startpunkt nicht existiert, wird derbranch
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
:
- Einen neuen Branch mit dem Namen
feature_branch
erstellen - Die neuesten Daten von
main
zufeature_branch
kopieren bencher run
würde mitfeature_branch
fortfahren
🐰 Hinweis: Wann immer Umgebungsvariablen verwendet werden, sollten sie in Anführungszeichen gesetzt werden (z.B.
--start-point "$MY_BRANCH_ENV_VAR"
), fallsbencher run
nicht fehlschlagen soll, wennMY_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 vomstart-point
aus mit dem angegebenen Hash erstellt. - Wenn
branch
existiert und sowohlstart-point
als auch der angegebene Hash identisch sind, wird diese Option ignoriert. - Wenn
branch
existiert und entweder derstart-point
oder der angegebene Hash unterschiedlich sind, wird ein neuerbranch
-Head vomstart-point
aus mit dem angegebenen Hash erstellt. - Wenn
branch
nicht existiert und derstart-point
am angegebenen Hash nicht existiert, wird derbranch
ohne historische Daten erstellt. - Wenn
branch
existiert und derstart-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:
- Entfernen des alten
feature_branch
-Heads - Erstellen eines neuen
feature_branch
-Heads - Kopieren aller jüngsten Daten von
main
am Hash68b12758509ca5e2b1e3983525625e532eb5f562
zum neuenfeature_branch
-Head bencher run
würde dann mit dem neuenfeature_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 dasstart-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 derbranch
ohne historische Daten erstellt. - Wenn
branch
existiert und kein Startpunkt angegeben ist, wird ein neuerbranch
Head ohne historische Daten erstellt. - Wenn
branch
nicht existiert und ein Startpunkt angegeben ist, wird derbranch
mithilfe des Startpunkts erstellt. - Wenn
branch
existiert und ein Startpunkt angegeben ist, wird ein neuerbranch
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
:
- Den alten
feature_branch
Head entfernen - Einen neuen
feature_branch
Head ohne historische Daten erstellen bencher run
würde dann unter Verwendung des neuenfeature_branch
Head fortfahren
🐰 Glückwunsch! Sie haben alles über die Branchenauswahl gelernt! 🎉