Branching wird in der Software-Versionskontrolle verwendet. Kopien von Projekt-Dateien, sogenannte Branches, ermöglichen es Teams, gleichzeitig an parallelen Versionen des Projekt zu arbeiten, während eine unveränderte Kopie erhalten bleibt. Dies eliminiert das Risiko, versehentlich die Änderungen anderer an Projekt-Dateien zu überschreiben.
Das Haupt-Projekt wird kopiert, wenn ein neuer Branch erstellt wird, wobei Änderungen nur an diesem Branch vorgenommen werden. Wenn Änderungen Abschließen sind, wird der Branch zurück in das Haupt-Projekt gemergt. An mehreren Branches kann gleichzeitig gearbeitet werden und nach dem Mergen werden Branches automatisch gelöscht. Gemergte Branches bleiben im -Tab für eine vereinfachte Historienverfolgung verfügbar. Tags von einem bestehenden Branch werden in den neuen Branch kopiert.
Einschränkungen
-
Alle Rollen außer Übersetzer und Gast können auf die -Ansicht zugreifen.
-
Merges können nicht rückgängig gemacht werden und Branches können nicht wiederhergestellt werden.
-
Jobs, die in einem bestimmten Branch erstellt wurden, sind im Haupt-Projekt nicht sichtbar und umgekehrt. Wenn ein Branch in das Haupt-Projekt gemergt wird, gehen alle offenen Jobs darin verloren.
-
Berichte in der -Ansicht spiegeln nur den Status des aktiven Branch wider. Das Mergen eines Branch in das Haupt-Projekt aktualisiert die Berichte des Haupt-Projekts.
-
Die -Ansicht enthält nur Aktivitäten im aktiven Branch. Aktivitäten in Branches sind im Haupt-Projekt nicht sichtbar und umgekehrt. Aktivitäten in einem Branch gehen verloren, wenn dieser in das Haupt-Projekt gemergt wird.
-
GitHub Sync kann nur im Haupt-Projekt und nicht in Branches verwendet werden.
-
Kommentare, die in einem Branch gemacht wurden, sind im Haupt-Projekt nicht sichtbar und umgekehrt.
-
, die in einem Branch erstellt wurden, sind im Haupt-Projekt nicht sichtbar und umgekehrt. Wenn ein Branch in das Haupt-Projekt zusammengeführt wird, gehen alle darin offenen Aufträge verloren.
-
Übersetzer können nicht auf bestimmte Branches beschränkt werden, erhalten aber die Berechtigung, an bestimmten Gebietsschemata zu arbeiten. Übersetzer sollten darin geschult werden, wie sie mit Branches arbeiten.
Branching wird im Tab der aktiviert, mit der Option, den Haupt-Branch vor Änderungen zu schützen.
Wenn aktiviert, wird ein Branch-Menü auf dem Projekt-Bildschirm angezeigt, in dem Arbeits-Branches ausgewählt werden können. Um einen Branch in CLI anzugeben, verwenden Sie den Parameter
--branch:
--branch <branch_name>
Branches werden im Tab eines Projekts aufgelistet, wo Informationen zu Erstellung und Zusammenführung angezeigt werden. Branches können auch gelöscht oder zusammengeführt werden und Jobs für diesen Branch können über den Tab erstellt werden.
Um alle Branches für ein Projekt über API oder CLI aufzulisten, führen Sie aus:
$ phrase branches list --project_id <project_id> # z. B. $ phrase branches list --project_id 1d8ae641902624df63ce6fbd64ff9549$ phrase branches list <project_id>
Um einen Branch über API oder CLI zu löschen, führen Sie aus:
$ phrase branches delete --project_id <project_id> --name <branch_name> # z. B. $ phrase branches delete --project_id 1d8ae641902624df63ce6fbd64ff9549 --name test-test$ phrase branch löschen <project_id> <branch_name>
Admin, Projektmanagement, Designer und Entwickler können neue Branch im Tab, via API oder in der CLI erstellen. Branch können von jedem anderen Branch aus erstellt werden, nicht nur vom Haupt-Branch. Es werden bis zu 5 Branch-Ebenen unterstützt.
Um einen Branch über die UI zu erstellen, folgen Sie diesen Schritten:
-
Wählen Sie auf einer Seite den Tab aus.
-
Klicken Sie auf Erstellen branch.
Das Fenster öffnet sich.
-
Geben Sie einen Namen für den Branch an.
-
Wählen Sie einen aus der Liste der vorhandenen Branch aus.
-
Klicke auf Erstellen.
Der neue Branch wird der Liste hinzugefügt.
Um einen Branch via API oder CPI zu erstellen, führen Sie Folgendes aus:
$ phrase branches Erstellen --project_id <project_id> --data <data>
Um einen Branch beim Pushen von Übersetzungen zu erstellen, führen Sie Folgendes aus:
$ phrase push --branch <branch_name>
Die Synchronisierung stellt sicher, dass der Arbeits-Branch mit den neuesten Änderungen des Branch, von dem er stammt, abgeglichen bleibt. Auf diese Weise können Übersetzer auch bei langfristigen Projekten mit einer aktualisierten Version des Content arbeiten.
Um einen Branch mit seinem Basis-Branch zu synchronisieren, folgen Sie diesen Schritten:
-
Klicken Sie im Tab neben dem gewünschten Branch auf Sync with base branch Weiter.
Die -Seite wird mit Informationen zu allen Konflikten und Änderungen angezeigt, die mit dem Basis-Branch synchronisiert werden sollen.
-
Klicken Sie auf eine der erkannten Änderungen, um sie vor der Synchronisierung zu überprüfen.
Eine Tabelle mit Details zur ausgewählten Änderung wird angezeigt.
-
Wählen Sie Sync aus und bestätigen Sie, um die Änderungen anzuwenden.
Die Änderungen werden dem Basis-Branch hinzugefügt und im Translation Editor sichtbar. Informationen zur letzten Synchronisierung werden in der Spalte des -Tabs angezeigt.
Die Branch-Synchronisierung kann auch über die API durch Ausführen dieses CLI-Befehls durchgeführt werden:
$ phrase branches sync \
--project_id <project_id> \
--name <branch_name> \
--data '{"strategy":"use_main"}' \
--access_token <token>
-
use_branchlöst Konflikte durch Übernahme der Änderungen aus dem Branch und ist die Standardeinstellung, falls nicht anders angegeben. -
use_mainlöst Konflikte durch Ablehnung der Änderungen aus dem Branch und bezieht sich auf den Basis-Branch. Bei der Arbeit mit gestapelten Branches ist der Basis-Branch nicht zwangsläufig der eigentliche Haupt-Projekt-Branch.
Nach Abschluss der Übersetzung oder versionsspezifischer Jobs in einem Branch können alle Änderungen in den Basis-Branch zusammengeführt werden. Sobald alle Änderungen in der Kette nach oben zusammengeführt wurden, kann der Branch der obersten Ebene in den Haupt-Branch zusammengeführt werden.
Nach einem erfolgreichen Zusammenführen wird der zusammengeführte Branch automatisch gelöscht und erscheint im -Tab zur Nachverfolgung der Historie.
Während des Zusammenführens werden nur Änderungen an den folgenden Ressourcen auf den Basis-Branch angewendet:
-
Gebietsschemas
-
Keys
-
Übersetzungen
Änderungen an anderen Ressourcen, wie Aktivitäten, Jobs und Aufträgen, werden nicht angewendet.
Branchs mit aktiv untergeordnetes Element Branchs können erst zusammengeführt werden, wenn die untergeordnetes Element Branchs zuerst gelöscht oder zusammengeführt wurden.
Konflikte
Ein Konflikt tritt auf, wenn eine Ressource (Übersetzung, Key oder Sprache) sowohl im aktuellen Branch als auch in dessen Basis-Branch geändert wurde, nachdem der Branch erstellt oder zuletzt synchronisiert wurde. Konflikte können auf jeder Ebene des Branch-Stacks auftreten, nicht nur beim zusammenführen in main.
Um einen Branch zusammenzuführen, folgen Sie diesen Schritten:
-
Klicken Sie im Tab eines Projekt auf Merge with base branch neben dem gewünschten Branch.
Die Seite öffnet sich. Informationen zu Übersetzungen, die während des zusammenführen geändert werden sollen, können durch Klicken in die Zellen aufgerufen werden.
-
Wenn Konflikte bestehen, wählen Sie eine Strategie zum zusammenführen:
-
Wählen Sie , um die konfliktverursachenden Änderungen zurückzuweisen und bestehende Übersetzungen beizubehalten.
-
Wählen Sie , um bestehende Übersetzungen durch Änderungen aus dem Branch zu Ersetzen.
-
-
Klicken Sie auf Merge und bestätigen Sie, um die Änderungen anzuwenden.
Der Branch wird mit dem Basis-Branch zusammengeführt und automatisch gelöscht. Um den Verlauf der zusammengeführten Branchs zu überprüfen, öffnen Sie den Tab auf der Seite .
Um einen Branch über API oder CPI zusammenzuführen, führen Sie Folgendes aus:
$ phrase branches merge \\
--project_id <project_id> \
--name <name> \\
--data '{"strategy":"use_main"}' \
--access_token <token>
-
use_branchlöst Konflikte durch Übernahme der Änderungen aus dem Branch und ist die Standardeinstellung, falls nicht anders angegeben. -
use_mainlöst Konflikte durch zurückweisen der Änderungen aus dem Branch.use_masterwird ebenfalls unterstützt.
Die Aktion merge löscht den zusammengeführten Branch ebenfalls automatisch.
Wenn Sie die CLI verwenden, geben Sie mit dem Parameter --branch einen Branch an, von dem aus oder zu dem Sie pushen oder pullen möchten.
$ phrase push --branch <branch_name> $ Phrase pull --branch <branch_name>
Wenn der angegebene Branch in einem Projekt nicht existiert, erstellt der Kunde ihn.
Verwenden Sie --use-local-branch-name, um unter Verwendung des Branch-Namens eines aktiven Git-Branch zu pushen und zu pullen:
$ Phrase push --use-local-branch-name $ Phrase pull --use-local-branch-name
Alle API-Endpunkte, die ein Projekt-Argument akzeptieren, unterstützen auch den Parameter --branch, um eine Aktion auf einem bestimmten Branch eines Projekt auszuführen:
$ Phrase upload Erstellen <project_id> \
--branch <branch_name>
--file /path/to/my/file.json \
--file-format json \
--locale-id abcd1234cdef1234abcd1234cdef1234 \
--tags awesome-feature,needs-proofreading \
--locale-mapping "{"en": "2"}" \
--format-options "{"foo": "bar"}"