분기는 소프트웨어 버전 제어에 사용됩니다. 분기라고 하는 프로젝트 파일의 복사본을 사용하면 팀이 편집되지 않은 복사본을 유지하면서 동시에 프로젝트의 병렬 버전에서 작업할 수 있습니다. 이렇게 하면 다른 사람의 프로젝트 파일 변경 사항을 실수로 덮어쓸 위험이 제거됩니다.
새 분기가 생성되면 메인 프로젝트가 복사되며 변경 사항은 해당 분기에만 적용됩니다. 변경 사항이 완료되면 분기가 메인 프로젝트에 다시 병합됩니다. 여러 분기에서 동시에 작업할 수 있으며 병합 후 분기는 자동으로 삭제됩니다. 병합된 분기는 간소화된 기록 추적을 위해 탭에서 계속 사용할 수 있습니다. 기존 분기의 태그는 새 분기로 복사됩니다.
제한 사항
-
번역가 및 게스트를 제외한 모든 roles은 보기에 액세스할 수 있습니다.
-
병합은 되돌릴 수 없으며 분기는 삭제 취소할 수 없습니다.
-
특정 분기에서 생성된 Jobs은 메인 프로젝트에서 볼 수 없으며 그 반대도 마찬가지입니다. 분기가 메인 프로젝트에 병합되면 해당 분기의 모든 열린 작업은 손실됩니다.
-
보기의 보고서는 활성 분기의 상태만 반영합니다. 분기를 메인 프로젝트에 병합하면 메인 프로젝트 보고서가 업데이트됩니다.
-
보기에는 활성 분기의 활동만 포함됩니다. 분기의 활동은 메인 프로젝트에서 볼 수 없으며 그 반대도 마찬가지입니다. 분기를 메인 프로젝트에 병합하면 분기의 활동은 손실됩니다.
-
GitHub Sync는 메인 프로젝트에서만 사용할 수 있으며 분기에서는 사용할 수 없습니다.
-
댓글은 분기에서 작성되면 메인 프로젝트에서 볼 수 없으며, 그 반대의 경우도 마찬가지입니다.
-
-
번역가는 특정 분기로 제한될 수 없지만, 특정 로캘<1>에서 작업할 수 있는 권한이 부여됩니다. 번역가에게 분기로 작업하는 방법을 교육해야 합니다.
분기는 의
활성화되면, 프로젝트 화면에 분기 메뉴 <1>가 표시되어 작업할 분기를 선택할 수 있습니다. CLI<3>에서 분기를 지정하려면
--branch<4> 매개변수를 사용하십시오:
--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"}"