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