Branching wird in der Software-Versionskontrolle verwendet. Kopien von Projektdateien, 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 Projektdateien 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 darin offenen Jobs 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 er in das Haupt-Projekt gemergt wird.
-
GitHub Sync kann nur im Hauptprojekt und nicht in Branches verwendet werden.
-
Kommentare, die in einem Branch gemacht wurden, sind im Hauptprojekt nicht sichtbar und umgekehrt.
-
, die in einem Branch erstellt wurden, sind im Hauptprojekt nicht sichtbar und umgekehrt. Wenn ein Branch in das Hauptprojekt zusammengeführt wird, gehen alle darin offenen Bestellungen verloren.
-
Übersetzer können nicht auf bestimmte Branches beschränkt werden, erhalten jedoch 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 Projektbildschirm angezeigt, in dem Arbeits-Branches ausgewählt werden können. Um einen Branch in der CLI anzugeben, verwenden Sie den Parameter
--branch:
--branch <branch_name>
Branches werden auf dem -Tab eines Projekts aufgelistet, wo Informationen zur 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 die API oder CLI aufzulisten, führen Sie Folgendes 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 die API oder CLI zu löschen, führen Sie Folgendes aus:
$ phrase branches delete --project_id <project_id> --name <branch_name> # z. B. $ phrase branches delete --project_id 1d8ae641902624df63ce6fbd64ff9549 --name test-test$ phrase branch delete <project_id> <branch_name>
Main-Branch schützen
schränkt Bearbeitungen am Haupt-Projekt ein und erfordert, dass alle Änderungen stattdessen in einem Branch vorgenommen werden.
Wenn aktiviert:
-
Locales, Keys und Übersetzungen können nicht direkt im Haupt-Projekt hinzugefügt, bearbeitet oder gelöscht werden.
-
Datei-Uploads und Screenshot-Verwaltung sind im Haupt-Projekt deaktiviert.
-
Vor dem Importieren von Dateien muss ein Branch ausgewählt werden.
-
Automatisierungen werden nicht für das Haupt-Projekt ausgeführt.
Admin, Projektmanagement, Designer und Entwickler können neue Branches im -Tab, über API oder in der CLI erstellen. Branches können von jedem anderen Branch aus erstellt werden, nicht nur vom Main-Branch. Es werden bis zu 5 Branch-Ebenen unterstützt.
Um einen Branch über die Benutzeroberfläche zu erstellen, folgen Sie diesen Schritten:
-
Wählen Sie auf einer -Seite den -Tab aus.
-
Klicken Sie auf Branch erstellen.
Das Fenster öffnet sich.
-
Geben Sie einen Namen für den Branch an.
-
Wählen Sie einen aus der Liste der vorhandenen Branches aus.
-
Klicke auf Erstellen.
Der neue Branch wird der Liste hinzugefügt.
Um einen Branch über API oder CLI zu erstellen, führen Sie Folgendes aus:
$ phrase branches create --project_id <project_id> --data <data>
Um beim Hochladen von Übersetzungen einen Branch 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 Branches, aus 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.
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 zu der 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 werden im Translation Editor sichtbar. Informationen über die letzte Synchronisierung werden in der Spalte des -Tabs angezeigt.
Die Branch-Synchronisierung kann auch über die API durchgeführt werden, indem dieser CLI-Befehl ausgeführt wird:
$ phrase branches sync \
--project_id <project_id> \
--name <branch_name> \
--data '{"strategy":"use_main"}' \
--access_token <token>
-
use_branchlöst Konflikte durch Anwenden der Änderungen aus dem Branch und ist der Standardwert, falls nicht anders angegeben. -
VerwendenSie den Main-Branch, um Konflikte durch Zurückweisen von Änderungen aus dem Branch zu lösen und auf den Basis-Branch zu verweisen. Bei der Arbeit mit gestapelten Branches ist der Basis-Branch nicht notwendigerweise der tatsächliche Main-Projekt-Branch.
Nach Abschluss der Übersetzungs- oder versionsspezifischen Arbeit 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 Main-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 Bestellungen, werden nicht angewendet.
Branches mit aktiven untergeordneten Elementen können erst zusammengeführt werden, wenn die untergeordneten Elemente 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 den Main-Branch.
Um einen Branch zusammenzuführen, folgen Sie diesen Schritten:
-
Klicken Sie im Tab eines Projekts neben dem gewünschten Branch auf Mit Basis-Branch zusammenführen.
Die Seite wird geöffnet. Informationen zu Übersetzungen, die während des Zusammenführens geändert werden sollen, können durch Klicken in die Zellen abgerufen werden.
-
Wenn Konflikte vorliegen, wählen Sie eine Strategie zum Zusammenführen aus:
-
Wählen Sie , um die in Konflikt stehenden Änderungen zurückzuweisen und bestehende Übersetzungen beizubehalten.
-
Wählen Sie , um bestehende Übersetzungen durch Änderungen aus dem Branch zu ersetzen.
-
-
Klicken Sie auf Zusammenführen 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 Branch 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 Anwenden der Änderungen aus dem Branch und ist der Standardwert, falls nicht anders angegeben. -
use_mainlöst Konflikte durch Ablehnung von Änderungen aus dem Branch.use_masterwird ebenfalls unterstützt.
Die merge-Aktion löscht den zusammengeführten Branch ebenfalls automatisch.
Geben Sie bei der Verwendung von CLI einen Branch zum Pushen oder Pullen mit dem --branch-Parameter an.
$ 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 --branch-Parameter, um eine Aktion auf einem bestimmten Branch eines Projekt auszuführen:
$ phrase upload create <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"}"