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
branchnicht existiert, wird es unter Verwendung dieses Startpunkts erstellt. - Wenn
branchexistiert und der Startpunkt derselbe ist, wird diese Option ignoriert. - Wenn
branchexistiert und der Startpunkt unterschiedlich ist, wird ein neuerbranchHead mit diesem aktualisierten Startpunkt erstellt. - Wenn
branchnicht existiert und der Startpunkt nicht existiert, wird derbranchohne historische Daten erstellt. - Wenn
branchexistiert 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_brancherstellen - Die neuesten Daten von
mainzufeature_branchkopieren bencher runwürde mitfeature_branchfortfahren
🐰 Hinweis: Wann immer Umgebungsvariablen verwendet werden, sollten sie in Anführungszeichen gesetzt werden (z.B.
--start-point "$MY_BRANCH_ENV_VAR"), fallsbencher runnicht fehlschlagen soll, wennMY_BRANCH_ENV_VARnicht 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
branchnicht existiert, wird es vomstart-pointaus mit dem angegebenen Hash erstellt. - Wenn
branchexistiert und sowohlstart-pointals auch der angegebene Hash identisch sind, wird diese Option ignoriert. - Wenn
branchexistiert und entweder derstart-pointoder der angegebene Hash unterschiedlich sind, wird ein neuerbranch-Head vomstart-pointaus mit dem angegebenen Hash erstellt. - Wenn
branchnicht existiert und derstart-pointam angegebenen Hash nicht existiert, wird derbranchohne historische Daten erstellt. - Wenn
branchexistiert und derstart-pointam 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
mainam Hash68b12758509ca5e2b1e3983525625e532eb5f562zum neuenfeature_branch-Head bencher runwü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
branchnicht existiert und kein Startpunkt angegeben ist, wird derbranchohne historische Daten erstellt. - Wenn
branchexistiert und kein Startpunkt angegeben ist, wird ein neuerbranchHead ohne historische Daten erstellt. - Wenn
branchnicht existiert und ein Startpunkt angegeben ist, wird derbranchmithilfe des Startpunkts erstellt. - Wenn
branchexistiert und ein Startpunkt angegeben ist, wird ein neuerbranchHead 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_branchHead entfernen - Einen neuen
feature_branchHead ohne historische Daten erstellen bencher runwürde dann unter Verwendung des neuenfeature_branchHead fortfahren
🐰 Glückwunsch! Sie haben alles über die Branchenauswahl gelernt! 🎉