Resolver conflitos de controlo da versão da Fundação Da Equipa

Azure DevOps Services | Azure DevOps Server | 2020 Azure DevOps Server | 2019 TFS 2018

Visual Studio | 2022 Visual Studio | 2019 | Visual Studio 2017 | Visual Studio 2015 Visual Studio 2013

Uma vantagem de usar o controlo da versão da Team Foundation para gerir os seus ficheiros é que várias pessoas podem trabalhar simultaneamente num ficheiro. Uma desvantagem é que, por vezes, temos de resolver conflitos antes de obter, fazer check-in, desaparasar, fundir ou reverter os teus ficheiros.

Embora possa ser frustrante encontrar conflitos, o sistema fornece informações e ferramentas para ajudá-lo a compreender e resolver conflitos.

Resolver conflitos

Use a janela Resolve Conflicts para resolver conflitos que o bloqueiam.

Use the Resolve Conflicts window to resolve conflicts.

Resolve conflicts

Por defeito, a janela mostra apenas os conflitos causados pela operação mais recente que tentou. Quando a janela está neste estado, aparece uma mensagem que começa: Filtro de caminho aplicado. Para mostrar todos os conflitos no seu espaço de trabalho, escolha Get All Conflicts. Aparece uma mensagem que começa com: n Conflito(s) aparece.

Se passou muito tempo desde que fez alterações nos ficheiros no seu espaço de trabalho, podem ter ocorrido novos conflitos. Para refrescar a janela Resolver Conflitos , escolha Refresh.

Cada conflito contém informações e, por vezes, ligações que podem ajudá-lo a resolvê-la. Para obter mais informações, pode selecionar o conflito e escolher:

  • Choose History.História para ver a história do arquivo. Se a operação que causou o conflito for uma Fusão ou uma Reversão, então pode escolher o controlo do menu à direita do Histórico e, em seguida, selecionar o Histórico de Origem ou Histórico alvo.

    Veja a história de um item.

  • Choose Annotate.Anotar para ver detalhes sobre todas as alterações que foram feitas para a versão mais recente do ficheiro, incluindo quem fez cada alteração e quando o fizeram. Consulte as alterações do ficheiro Ver utilizando anotações.

  • Choose Compare.Compare (ou o menu à direita do botão e, em seguida, escolha um comando). A janela Diff aparece.

AutoResolve todos os conflitos

Por predefinição, o sistema tenta automaticamente obter o AutoResolve Todos os conflitos, a menos que tenha desligado esta opção (ver Sugestões). Na janela Resolver Conflitos, também pode escolher manualmente AutoResolve All e, em seguida, escolher:

  • Selecione Todos os Tipos de Conflitos se quiser que o sistema tente resolver os conflitos automaticamente utilizando toda a sua heurística.

  • Selecione Tipos específicos de conflito se quiser que o sistema tente resolver os conflitos, mas pretende excluir algumas heurísticas.

    Aparece a caixa de diálogo Escolha Conflitos para Resolver . Verifique ou limpe as opções que pretende ativar ou desativar e, em seguida, escolha AutoResolve. Para mais informações, consulte As opções automáticas abaixo .

O sistema tenta resolver automaticamente os conflitos apresentados na janela Alterações Pendentes. Quaisquer conflitos que o sistema não foi capaz de resolver permanecerão na janela. Tens de resolver manualmente estes conflitos.

AutoMerge um único conflito

Escolha o AutoMerge se quiser tentar resolver conflitos selecionados utilizando todas as opções de AutoMerge descritas em Compreender as opções automáticas abaixo .

Dica

Pode premir e segurar a tecla Ctrl ou a chave Shift e, em seguida, selecionar vários conflitos.

Nota

Se o AutoMerge estiver desativado, este conflito deve ser resolvido manualmente.

Resolver manualmente um único conflito

Se o sistema não conseguir resolver automaticamente um conflito, ou se quiser ter a certeza de que compreende o que está a mudar, tem de resolver manualmente o conflito. Dentro de cada conflito, o sistema exibe as ações que pode tomar para resolver o conflito. As ações apresentadas dependem do tipo de conflito e da operação que causou o conflito.

Alterações na ferramenta de fusão

Quando um conflito é causado por alterações de conteúdo conflituosas, pode escolher Alterações de Fusão na Ferramenta de Fusão.

Quando escolhe esta ação, aparece a janela Merge.

Merge changes in merge tool

O resultado do seu trabalho para resolver o conflito é mostrado no painel de resultados .

Nesta janela pode:

  • Selecione o layout da janela: Vista Vertical, Vista Horizontal, Vista Mista.

  • Navegue entre as diferenças e os conflitos.

  • Selecione itens das versões esquerda e direita do ficheiro para incluí-los no resultado.

  • Digite conteúdo adicional no ficheiro no painel resultado.

  • Ver a História do ficheiro. Veja a história de um item.

  • Compare as várias versões do ficheiro.

  • Anotar o ficheiro para ver quem mudou o quê. Consulte as alterações do ficheiro Ver utilizando anotações.

Quando estiver satisfeito com o conteúdo do painel de resultados , escolha Aceitar a Fusão.

Compreender as opções automáticas

Em casos especiais, poderá querer restringir os tipos de conflitos resolvidos automaticamente pela opção AutoResolve All .

Quando escolhe AutoResolve All e, em seguida, Tipos de Conflitos Específicos, aparece a caixa de diálogo Escolha Conflitos para Resolver .

Understand the automatic options

Se quer que o sistema resolva automaticamente os conflitos que ocorreram porque...

Como explicado neste exemplo...

Em seguida, selecione esta caixa de verificação...


Alterações de conteúdo não conflituosos foram feitas em cada versão de um ficheiro

Na versão do ficheiro à esquerda, um zero foi adicionado no início. No ficheiro à direita, um três foi adicionado no final:

Non-conflicting content changes

Conflitos com quaisquer alterações de conteúdo

Foram feitas alterações de conteúdo que são únicas no espaço de trabalho (durante a operação get or checkin) ou na versão alvo (durante a operação de fusão ou reversão)

quatro e cinco foram adicionados à versão do espaço de trabalho ou do alvo:

Content changes unique to workspace or target

Conflitos com alterações de conteúdo efetuadas apenas no espaço de trabalho local ou no ramo alvo

Foram feitas alterações de conteúdo que são únicas no servidor (durante o funcionamento de get ou checkin) ou versão de origem (durante a operação de fusão ou reversão)

quatro e cinco foram adicionados à versão do servidor ou fonte:

Content changes unique to server or source

Conflitos com alterações de conteúdo efetuadas apenas na versão do servidor ou ramo de origem

Um ficheiro no servidor (durante a operação de get ou checkin) ou no ramo de origem (durante a operação de fusão ou reversão) foi renomeado

Verificou um ficheiro que tem o nome de lançamento.cs e trabalhou nele. Durante esse tempo, alguém verificou uma alteração que afetou o mesmo ficheiro. Esta alteração não modificou o conteúdo do ficheiro, mas alterou o nome do ficheiro para iniciar.cs.

Conflitos causados pela renomeação do ficheiro na versão do servidor ou ramo de origem

  • Foram feitas alterações de conteúdo comuns que resultaram em conteúdos idênticos em cada versão

  • Alterou um ficheiro, fez o check-in através de um build Gated Check-in e selecionou a Preservação da minha opção local

As alterações em cada versão resultaram num conteúdo de ficheiro idêntico. As alterações podem ser para o conteúdo dos ficheiros, como mostra o seguinte exemplo:

Identical content changes in each version Esta opção também resolve conflitos que são causados por todas as outras operações (por exemplo, renomear, excluir, desdeletes e sucursais) e que resultam em ficheiros idênticos.

Dica

Se selecionar esta caixa de verificação, quando proceder, o sistema resolverá estas alterações tomando (descarregar) a versão do servidor para o seu espaço de trabalho.

Conflitos causados por alterações idênticas no servidor e espaço de trabalho

Trabalho a partir do comando

Sugestões

  • Tips Por predefinição, o sistema tenta automaticamente obter o AutoResolve Todos os conflitos. Para alterar a opção, a partir da barra de menus escolha Ferramentas, Opções e, em seguida, na caixa de diálogo Opções, navegue para Source Control, Visual Studio Team Foundation Server. Limpe a Tentativa de resolver automaticamente os conflitos quando são geradas caixas de verificação.

  • Tips A sua equipa precisa de colaborar para resolver um grande número de conflitos (por exemplo, que podem ocorrer após a fusão numa grande base de código)? Se assim for, um espaço de trabalho público numa máquina dev partilhada pode ajudar. Ver Criar e trabalhar com espaços de trabalho.