ブランチ機能は、ソフトウェアのバージョン管理で使用されます。ブランチと呼ばれるプロジェクトファイルのコピーにより、チームはプロジェクトの未編集のコピーを保持したまま、並行してプロジェクトのバージョンで仕事ができます。これにより、他のユーザーによるプロジェクトファイルへの変更を誤って上書きするリスクがなくなります。
新しいブランチが作成されるとメインの プロジェクト がコピーされ、変更はそのブランチに対してのみ行われます。変更が完了すると、ブランチはメインプロジェクトにマージされます。複数のブランチで同時に仕事を進めることができ、マージ後、ブランチは自動的に削除されます。マージされたブランチは、履歴を簡単に追跡できるように タブに残ります。既存のブランチのタグは、新しいブランチにコピーされます。
制限事項
-
翻訳者およびゲストを除くすべての ロール は、 ビューにアクセスできます。
-
マージの取り消しや、削除されたブランチの復元はできません。
-
特定のブランチで作成された ジョブ はメインプロジェクトでは表示されず、その逆も同様です。ブランチがメインプロジェクトにマージされると、そのブランチ内の未完了のジョブは失われます。
-
ビューのレポートには、アクティブなブランチのステータスのみが反映されます。ブランチをメインプロジェクトにマージすると、メインプロジェクトのレポートが更新されます。
-
ビューには、アクティブなブランチのアクティビティのみが表示されます。ブランチ内のアクティビティはメインプロジェクトでは表示されず、その逆も同様です。ブランチ内のアクティビティは、メインプロジェクトにマージすると失われます。
-
GitHub同期はメインプロジェクトでのみ使用でき、ブランチでは使用できません。
-
コメントは、ブランチで行われた場合メインプロジェクトには表示されず、その逆も同様です。
-
は、ブランチで作成された場合メインプロジェクトには表示されず、その逆も同様です。ブランチがメインプロジェクトにマージされると、そのブランチ内の未完了の注文は失われます。
-
翻訳者は特定のブランチに制限することはできませんが、特定のロケールで仕事をする権限が与えられます。翻訳者には、ブランチでの仕事の進め方を指示する必要があります。
ブランチ機能は、のタブで有効になり、メインブランチを保護して変更を防ぐオプションがあります。
有効にすると、プロジェクト画面にブランチメニューが表示され、そこから仕事用のブランチを選択できます。CLIでブランチを指定するには、
--branchパラメータを使用します。
--branch <branch_name>
ブランチはプロジェクトのタブに一覧表示され、作成およびマージ情報が表示されます。ブランチは、タブから削除やマージを行ったり、そのブランチのジョブを作成したりすることもできます。
APIまたはCLI経由でプロジェクトのすべてのブランチを一覧表示するには、以下を実行します。
$ phrase branches list --project_id <project_id> # 例 $ phrase branches list --project_id 1d8ae641902624df63ce6fbd64ff9549$ phrase branches list <project_id>
APIまたはCLI経由でブランチを削除するには、以下を実行します。
$ phrase branches delete --project_id <project_id> --name <branch_name> # 例 $ phrase branches delete --project_id 1d8ae641902624df63ce6fbd64ff9549 --name test-test$ phrase branch delete <project_id> <branch_name>
メインブランチを保護
有効にすると:
-
メインプロジェクトでは、ロケール、キー、翻訳を直接追加、編集、削除することはできません。
-
メインプロジェクトでは、ファイルのアップロードとスクリーンショットの管理は無効になっています。
-
ファイルをインポートする前に、ブランチを選択する必要があります。
-
自動化はメインプロジェクトに対しては実行されません。
管理者、プロジェクトマネージャ、デザイナー、開発者の役割を持つユーザーは、タブ、API、またはCLI経由で新しいブランチを作成できます。ブランチはメインブランチだけでなく、他のどのブランチからでも作成できます。最大5レベルのブランチがサポートされています。
UIからブランチを作成するには、以下の手順に従います。
-
ページから、タブを選択します。
-
ブランチを作成をクリックします。
ウィンドウが開きます。
-
ブランチの名前を入力します。
-
既存のブランチの一覧からを選択します。
-
作成をクリックします。
新しいブランチが一覧に追加されます。
APIまたはCLI経由でブランチを作成するには、以下を実行します。
$ phrase branches create --project_id <project_id> --data <data>
翻訳をプッシュする際にブランチを作成するには、以下を実行します。
$ phrase push --branch <branch_name>
同期を行うことで、作業ブランチが元のブランチからの最新の変更と一致した状態に保たれます。これにより、翻訳者は長期プロジェクトにおいても更新されたバージョンのコンテンツで仕事ができます。
ブランチをベースブランチと同期するには、以下の手順に従ってください。
-
タブで、目的のブランチの横にあるベースブランチと同期をクリックします。
ページが表示され、ベースブランチと同期される競合や変更に関する情報が示されます。
-
検出された変更のいずれかをクリックして、同期前に確認します。
選択した変更の詳細が記載されたテーブルが表示されます。
-
同期を選択し、確定して変更を適用します。
変更はベースブランチに追加され、翻訳エディタで表示できるようになります。前回の同期に関する情報は、タブの列に表示されます。
ブランチの同期は、以下のCLIコマンドを実行してAPI経由で行うこともできます。
$ phrase branches sync \\
--project_id <project_id> \
--name <branch_name> \
--data '{"strategy":"use_main"}' \
--access_token <token>
-
use_branchは、ブランチからの変更を適用することで競合を解決します。指定がない場合のデフォルト設定です。 -
use_mainは、ブランチからの変更を拒否することで競合を解決し、ベースブランチを参照します。スタックされたブランチで仕事をする場合、ベースブランチが必ずしも実際のメインプロジェクトブランチであるとは限りません。
ブランチでの翻訳やバージョン固有の仕事が完了した後、変更をベースブランチに結合できます。すべての変更がチェーンの上位に結合されたら、最上位のブランチをメインブランチに結合できます。
結合が成功すると、結合されたブランチは自動的に削除され、履歴追跡のためにタブに表示されます。
結合中にベースブランチに適用されるのは、以下のリソースへの変更のみです。
-
ロケール
-
キー
-
翻訳
アクティビティ、ジョブ、注文などの他のリソースへの変更は適用されません。
アクティブな子ブランチを持つブランチは、子ブランチが先に削除または結合されるまで結合できません。
競合
競合は、ブランチが作成された後、または最後に同期された後に、現在のブランチとそのベースブランチの両方でリソース(翻訳、キー、またはロケール)が変更された場合に発生します。競合はメインへの結合時だけでなく、ブランチスタックのどのレベルでも発生する可能性があります。
ブランチを結合するには、以下の手順に従います。
-
プロジェクトのタブから、目的のブランチの横にあるベースブランチと結合をクリックします。
ページが開きます。結合中に変更される翻訳に関する情報は、セルをクリックすることでアクセスできます。
-
競合がある場合は、結合戦略を選択します。
-
を選択すると、競合する変更が拒否され、既存の翻訳が保持されます。
-
を選択すると、既存の翻訳がブランチからの変更で置換されます。
-
-
結合をクリックし、確定して変更を適用します。
ブランチはベースブランチに結合され、自動的に削除されます。結合されたブランチの履歴を確認するには、ページのタブを開きます。
APIまたはCPI経由でブランチを結合するには、以下を実行します。
$ phrase branches merge \\
--project_id <project_id> \
--name <name> \\
--data '{"strategy":"use_main"}' \
--access_token <token>
-
use_branchは、ブランチからの変更を適用することで競合を解決します。指定がない場合のデフォルト設定です。 -
use_mainは、ブランチからの変更を拒否することで競合を解決します。use_masterもサポートされています。
結合アクションは、結合されたブランチも自動的に削除します。
CLIを使用する際は、--branchパラメータを使用して、プッシュまたはプルするブランチを指定してください。
$ phrase push --branch <branch_name> $ phrase pull --branch <branch_name>
指定されたブランチがプロジェクトに存在しない場合、クライアントがそれを作成します。
--use-local-branch-nameを使用して、アクティブなgitブランチのブランチ名を使用してプッシュおよびプルします:
$ Phrase push --use-local-branch-name $ Phrase pull --use-local-branch-name
プロジェクト引数を取るすべてのAPIエンドポイントは、--branchパラメータもサポートしており、プロジェクトの特定のブランチに対してアクションを実行できます:
$ 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"}"