-
Planos Business e Enterprise
Entre em contato com o departamento de Vendas para perguntas sobre o licenciamento.
A ramificação é usada no controle de versão de software. Cópias de arquivos de projeto chamadas ramos permitem que equipes trabalhem em versões paralelas do projeto ao mesmo tempo, mantendo uma cópia não editada. Isso elimina o risco de sobrescrever acidentalmente as alterações de outros nos arquivos do projeto.
O projeto principal é copiado quando um novo ramo é criado, com as alterações sendo feitas apenas nesse ramo. Quando as alterações estão Concluídas, o ramo é mesclado de volta ao projeto principal. Vários ramos podem ser trabalhados ao mesmo tempo e, após a mesclagem, os ramos são excluídos automaticamente. Ramos mesclados permanecem disponíveis na aba para rastreamento simplificado do histórico. Tags de um ramo existente são copiadas para o novo ramo.
Limitações
-
Todas as funções exceto tradutor e convidado têm acesso à visualização de .
-
Mesclagens não podem ser revertidas e ramos não podem ser recuperados.
-
Trabalhos criados em um ramo específico não são visíveis no projeto principal e vice-versa. Quando um ramo é mesclado ao projeto principal, quaisquer trabalhos abertos nele são perdidos.
-
Relatórios na visualização de refletem apenas o estado do ramo ativo. Mesclar um ramo ao projeto principal atualiza os relatórios do projeto principal.
-
A visualização de contém apenas atividades no ramo ativo. Atividades em ramos não são visíveis no projeto principal e vice-versa. Atividades em um ramo são perdidas ao mesclá-lo ao projeto principal.
-
A sincronização com o GitHub só pode ser usada no projeto principal e não em ramos.
-
Comentários feitos em um ramo não são visíveis no projeto principal e vice-versa.
-
criados em um ramo não são visíveis no projeto principal e vice-versa. Quando um ramo é mesclado ao projeto principal, quaisquer pedidos abertos nele são perdidos.
-
Tradutores não podem ser restritos a ramos específicos, mas recebem permissão para trabalhar em idiomas específicos. Tradutores devem ser instruídos sobre como trabalhar com ramos.
A ramificação é ativada na
Quando ativado, um menu de ramo é apresentado na tela do projeto, onde ramos de trabalho podem ser selecionados. Para especificar um ramo na CLI, use o parâmetro
--branch:
--branch <branch_name>
Ramos são listados na
Para listar todos os ramos de um projeto via API ou CLI, execute:
$ phrase branches list --project_id <project_id> # ex. $ phrase branches list --project_id 1d8ae641902624df63ce6fbd64ff9549$ phrase branches list <project_id>
Para excluir um ramo via API ou CLI, execute:
$ phrase branches delete --project_id <project_id> --name <branch_name> # ex. $ phrase branches delete --project_id 1d8ae641902624df63ce6fbd64ff9549 --name test-test$ phrase branch delete <project_id> <nome_do_ramo>
Proteger Ramo Principal
restringe edições ao projeto principal, exigindo que todas as alterações sejam feitas em um ramo.
Quando ativado:
-
Locais, chaves e traduções não podem ser adicionados, editados ou excluídos diretamente no projeto principal.
-
Uploads de arquivos e gerenciamento de capturas de tela são desativados no projeto principal.
-
Um ramo deve ser selecionado antes de importar arquivos.
-
Automações não são executadas no projeto principal.
Funções de admin, gerente de projetos, designer e desenvolvedor podem criar novos ramos na de ramos, via API ou na CLI. Ramos podem ser criados a partir de qualquer outro ramo, não apenas do ramo principal. Até 5 níveis de ramo são suportados.
Para criar um ramo a partir da interface, siga estas etapas:
-
A partir de uma página de , selecione a de ramos.
-
Clique em Criar ramo.
A janela abre.
-
Forneça um nome para o ramo.
-
Selecione um da lista de ramos existentes.
-
Clique em Criar.
O novo ramo é adicionado à lista.
Para criar um ramo via API ou CLI, execute:
$ Phrase branches create --project_id <project_id> --data <data>
Para criar um ramo ao enviar Phrase, execute:
$ phrase push --branch <branch_name>
A sincronização garante que o ramo de trabalho permaneça alinhado com as alterações mais recentes do ramo do qual se originou. Dessa forma, os tradutores podem trabalhar com uma versão atualizada do conteúdo também em projetos de longo prazo.
Para sincronizar um ramo com seu ramo base, siga estas etapas:
-
Na aba , clique em Sync with base branch ao lado do ramo desejado.
A página é exibida com informações sobre quaisquer conflitos e alterações a serem sincronizados com o ramo base.
-
Clique em qualquer uma das alterações detectadas para revisá-la antes de sincronizar.
Uma tabela com detalhes sobre a alterar selecionada é exibida.
-
Selecione Sync e confirmar para aplicar as alterações.
As alterações são adicionadas ao ramo base e tornam-se visíveis no editor de tradução. Informações sobre a última sincronização são exibidas na coluna da aba .
A sincronização de ramo também pode ser realizada via API executando este comando CLI:
$ phrase branches sync \\
--project_id <project_id> \\
--name <branch_name> \
--data '{"strategy":"use_main"}' \\
--access_token <token>
-
use_branchresolve conflitos aplicando alterações do ramo e, se não especificado, é o padrão. -
use_mainresolve conflitos rejeitando alterações do ramo e refere-se ao ramo base. Ao trabalhar com ramos empilhados, o ramo base não é necessariamente o ramo principal do projeto.
Após concluir a tradução ou o trabalho específico da versão em um ramo, quaisquer alterações podem ser mescladas no ramo base. Uma vez que todas as alterações sejam mescladas na cadeia, o ramo de nível superior pode ser mesclado no ramo principal.
Após uma mesclagem bem-sucedida, o ramo mesclado é excluído automaticamente e aparece na aba para rastreamento de histórico.
Apenas alterações nos seguintes recursos são aplicadas ao ramo base durante as mesclagens:
-
Locais
-
Chaves
-
Traduções
Alterações em outros recursos, como Atividades, Trabalhos e Pedidos, não são aplicadas.
Ramos com ramos secundários ativos não podem ser mesclados até que os ramos secundários sejam excluídos ou mesclados primeiro.
Conflitos
Um conflito ocorre quando um recurso (tradução, chave ou local) foi alterado tanto no ramo atual quanto no seu ramo base após o ramo ter sido criado ou sincronizado pela última vez. Conflitos podem ocorrer em qualquer nível da pilha de ramos, não apenas ao mesclar no principal.
Para mesclar um ramo, siga estas etapas:
-
Na aba de um projeto, clique em Mesclar com o ramo base ao lado do ramo desejado.
A página é aberta. Informações sobre traduções a serem modificadas durante a mesclagem podem ser acessadas clicando nas células.
-
Se houver conflitos, selecione uma estratégia de mesclagem:
-
Selecione para rejeitar as alterações conflitantes e preservar as traduções existentes.
-
Selecione para substituir as traduções existentes pelas alterações do ramo.
-
-
Clique em Mesclar e confirme para aplicar as alterações.
O ramo é mesclado ao ramo base e excluído automaticamente. Para revisar o histórico de ramos mesclados, abra a aba na página .
Para mesclar um ramo via API ou CPI, execute:
$ phrase branches merge \\
--project_id <project_id> \\
--name <name> \\
--data '{"strategy":"use_main"}' \\
--access_token <token>
-
use_branchresolve conflitos aplicando alterações do ramo e, se não especificado, é o padrão. -
use_mainresolve conflitos rejeitando alterações do ramo.use_mastertambém é suportado.
A ação merge também exclui o ramo mesclado automaticamente.
Ao usar a CLI, especifique um ramo para enviar ou receber com o parâmetro --branch.
$ phrase push --branch <branch_name> $ phrase pull --branch <branch_name>
Se o ramo especificado não existir em um projeto, o cliente o cria.
Use --use-local-branch-name para enviar e receber usando o nome de um ramo git ativo:
$ phrase push --use-local-branch-name $ phrase pull --use-local-branch-name
Todos os endpoints da API que aceitam um argumento de projeto também suportam o parâmetro --branch para realizar uma ação em um ramo específico de um projeto:
$ 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"}"