分支用于软件版本控制。称为分支的项目文件副本允许团队同时处理项目的并行版本,同时保留未编辑的副本。这消除了意外覆盖他人对项目文件所做更改的风险。
当创建新分支时,主 项目 会被复制,更改仅在该分支上进行。当更改完成时,该分支将合并回主项目。可以同时处理多个分支,并且在合并后,分支会自动删除。合并后的分支保留在 选项卡中,以便简化历史记录跟踪。现有分支中的标记会被复制到新分支中。
限制
-
除译员和临时用户外,所有 角色 均可访问 视图。
-
合并无法撤销,分支也无法恢复。
-
在特定分支中创建的 任务 在主项目中不可见,反之亦然。当分支合并到主项目中时,其中的任何未完成任务都将丢失。
-
视图中的报告仅反映当前可用的分支的状态。将分支合并到主项目中会更新主项目报告。
-
视图仅包含当前可用分支中的活动。分支中的活动在主项目中不可见,反之亦然。将分支合并到主项目中时,分支中的活动会丢失。
-
GitHub 同步只能在主项目上使用,不能在分支上使用。
-
评论在分支中进行,在主项目中不可见,反之亦然。
-
在分支中创建,在主项目中不可见,反之亦然。当分支合并到主项目中时,其中的任何未结订单都将丢失。
-
译员不能被限制在特定分支中,但被授予在特定语言环境上工作的权限。应指导译员如何使用分支进行工作。
分支在的选项卡中启用,并提供保护主分支免受更改的选项。
启用后,项目屏幕上会显示一个分支菜单,可以在其中选择工作分支。要在CLI<3>中指定分支,请使用
--branch<4>参数:
--branch <branch_name>
分支列在项目的选项卡中,其中显示了创建和合并信息。分支也可以在选项卡中删除或合并,并为该分支创建作业。
$ 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>
同步可确保工作分支与源分支的最新更改保持一致。这样,译员也可以在长期项目中处理更新后的内容版本。
要将分支与基础分支同步,请按照以下步骤操作:
-
在 选项卡中,点击所需分支旁边的 Sync with base branch。
页面会显示有关任何冲突以及要与基础分支同步的更改的信息。
-
点击任何检测到的更改以在同步前进行查看。
将显示包含所选更改详细信息的表格。
-
选择 Sync 并确认以应用更改。
更改将添加到基础分支,并可在翻译编辑器中查看。有关上次同步的信息显示在 选项卡的 列中。
分支同步也可以通过 API 执行,方法是运行此 CLI 命令:
$ 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通过应用来自该分支的更改来解决冲突,如果未指定,则为默认设置。 -
use_main通过拒绝来自分支的更改来解决冲突。同时也支持use_master。
合并 操作还会自动删除已合并的分支。
使用 CLI 时,请通过 --branch 参数指定要推送或拉取的分支。
$ phrase push --branch <branch_name> $ Phrase 拉取 --branch <branch_name>
如果指定的分支在项目中不存在,客户会创建它。
使用 --use-local-branch-name 来使用可用的 git 分支的分支名称进行推送和拉取:
$ Phrase 推送 --use-local-branch-name $ Phrase 拉取 --use-local-branch-name
所有接受项目参数的 API 端点也都支持 --branch 参数,以便对项目的特定分支执行操作:
$ Phrase 上传 创建 <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"}"