Resolver conflitos de controle de versão do Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Uma vantagem de usar o TFVC (Team Foundation Version Control) para gerenciar seus arquivos é que várias pessoas podem trabalhar simultaneamente em um arquivo. Uma desvantagem é que, às vezes, você deve resolver conflitos antes de você pode obter, verificar, desfazer check-in particular, mesclar ou reverter os arquivos.

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

Você também pode resolver conflitos da linha de comando usando o comando Resolve.

Dica

Se sua equipe precisar colaborar para resolver um grande número de conflitos, por exemplo, após uma operação de mesclagem em uma base de código grande, um workspace público em um computador de desenvolvimento compartilhado pode ajudar. Para obter mais informações, consulte Criar e trabalhar com workspaces.

Resolver conflitos

Você pode usar a janela Resolver Conflitos do Visual Studio para resolver conflitos que estão bloqueando você. Para abrir a janela, selecione Ações>Resolver conflitos na página Alterações Pendentes do Team Explorer.

Captura de tela do uso da janela Resolver Conflitos para resolver conflitos.

Por padrão, a janela mostra somente os conflitos causados pela tentativa de operação mais recente. Quando a janela está nesse estado, é mostrado uma mensagem que começa com: Filtro de caminho aplicado. Para mostrar todos os conflitos em seu workspace, selecione Obter Todos os Conflitos. Uma mensagem que começa com: <N>Conflito(s) é exibida.

Se já faz muito tempo que você fez alterações nos arquivos de seu workspace, novos conflitos podem ter ocorrido. Para atualizar a janela Resolver Conflitos, selecione Atualizar.

Captura de tela que mostra a janela Resolver Conflitos.

Cada conflito contém informações e às vezes links que podem ajudar a resolvê-lo. Para obter mais informações, você pode selecionar o conflito e escolher uma das seguintes opções:

  • Ícone de histórico.Histórico para ver o histórico do arquivo. Se a operação que causou o conflito for uma mesclagem ou uma reversão, você poderá escolher o controle de menu à direita de Histórico e selecione Histórico de Origem ou Histórico de Destino. Para obter mais informações, consulte Obter o histórico de um item.

  • Ícone Comparar.Compare ou selecione a seta suspensa ao lado do ícone e escolha um comando. A janela Diff é aberta.

  • Ícone Anotar.Anote para exibir detalhes sobre todas as alterações feitas na versão mais recente do arquivo, incluindo quem fez cada alteração e quando a fez. Consulte Exibir alterações de arquivo usando o recurso de anotar.

Conflitos do Resolver tudo automaticamente

Por padrão, o sistema tenta Resolver Tudo Automaticamente a menos que você desative essa opção. Para desativar oResolver Tudo Automaticamente, escolha Ferramentas>Opções. Na caixa de diálogo Opções, em Controle do Código-Fonte>do Visual Studio Team Foundation Server, desmarque Tentativa de resolver conflitos automaticamente quando eles são gerados.

Você também pode escolher manualmente Resolver Tudo Automaticamente na janela Resolver Conflitos e, em seguida, selecionar uma das seguintes opções:

  • Todos os Tipos de Conflitos se você desejar que o sistema tente resolver os conflitos automaticamente usando todas as suas heurísticas.

  • Tipos de Conflitos Específicos se quiser que o sistema tente resolver os conflitos, mas quiser excluir algumas heurísticas.

    A caixa de diálogo Escolher Conflitos para Resolver aparece. Marque ou desmarque as opções que você deseja ativar ou desativar, escolha Resolver Automaticamente.

    As tentativas do sistema de resolver os conflitos automaticamente exibidos na janela de Alterações Pendentes. Quaisquer conflitos que o sistema não consegue resolver permanecem na janela. É necessário resolver manualmente esses conflitos.

Entender as opções automáticas

Em casos especiais, talvez você queira restringir os tipos de conflito resolvidos automaticamente pela opção Resolver Tudo Automaticamente. Quando você escolhe Resolver Tudo Automaticamente e, em seguida, seleciona Tipos de Conflitos Específicos, a caixa de diálogo Escolher Conflitos para Resolver é exibida.

Captura de tela que mostra a caixa de diálogo Escolher Conflitos para Resolver.

Causa do conflito

Exemplo

Seleção de caixa de seleção


Alterações de conteúdo não conflitante foram feitas em cada versão de um arquivo.

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

Captura de tela das alterações de conteúdo não conflitantes.

Conflitos com algumas alterações de conteúdo

Alterações de conteúdo foram feitas durante uma operação de obtenção ou check-in exclusiva para o workspace ou durante uma operação de mesclagem ou reversão exclusiva para a versão de destino.

As entradas quatro e cinco foram adicionados ao workspace ou à versão de destino:

Captura de tela das alterações de conteúdo exclusivas para o workspace ou destino.

Conflitos com alterações de conteúdo feitas somente no workspace local ou na ramificação de destino

Alterações de conteúdo foram feitas durante a operação get ou check-in exclusivas para o servidor ou durante uma operação de mesclagem ou reversão exclusiva para a versão de origem.

As entradas quatro e cinco foram adicionadas ao servidor ou à versão de origem:

Captura de tela das alterações de conteúdo exclusivas do servidor ou da origem.

Conflitos com alterações de conteúdo feitas somente na versão do servidor ou na ramificação de origem

Um arquivo foi renomeado no servidor durante uma operação de obtenção ou check-in ou na ramificação de origem durante uma operação de mesclagem ou reversão.

Você fez check-out de um arquivo que é chamado launch.cs e trabalhou nele. Durante esse tempo, outra pessoa fez check-in em um conjunto de alterações que afetou o mesmo arquivo. Esse conjunto de alterações não modificou o conteúdo do arquivo, mas alterou o nome do arquivo para start.cs.

Conflitos causados por renomeação de arquivo na versão do servidor ou na ramificação de origem

Alterações de conteúdo comuns feitas que resultaram em conteúdo idêntico em cada versão. Ou, você modificou um arquivo, fez check-in do mesmo através de uma compilação de check-in com barreira, e selecionou a opção Preservar minhas alterações pendentes localmente.

As alterações para cada versão resultaram em conteúdo de arquivo idêntico. As alterações podem ser o conteúdo em arquivos, conforme mostrado no exemplo o seguir:

Captura de tela que mostra alterações de conteúdo idênticas em ambas as versões.

Conflitos causados por alteração idêntica no servidor e workspace

Esta opção também resolve os conflitos que são causados por todas as outras operações (por exemplo, renomear, excluir, desfazer exclusão, e ramificação) e que resultam em arquivos idênticos.

Dica

Se você selecionar esta caixa de seleção, quando prosseguir, o sistema resolve essas alterações ao baixar a versão de servidor em seu workspace.

Conflitos selecionados pelo AutoMerge

Para tentar resolve conflitos selecionados usando todas as opções de mesclagem automática anteriores, selecione um ou mais conflitos e escolha AutoMerge.

Dica

Você pode pressionar e segurar a tecla Ctrl ou Shift e, em seguida, selecione vários conflitos.

Observação

Se oAutoMerge estiver desabilitado, você deverá resolver manualmente os conflitos.

Resolver conflitos selecionados manualmente

Se o sistema não pode resolver um conflito automaticamente ou se você deseja entender o que está sendo alterado, é necessário resolver o conflito manualmente. Em cada conflito, o sistema exibe as ações que você pode tomar para resolver o conflito. As ações exibidas dependem do tipo de conflito e a operação que causou o conflito.

Usar a janela Mesclagem

Quando alterações de conteúdo conflitantes causam um conflito, você pode escolher Mesclar Alterações na Ferramenta de Mesclagem. A janela Mesclar será exibida.

Captura de tela que mostra as alterações de mesclagem na ferramenta de mesclagem.

Na janela Mesclagem, você pode:

  • Selecione o layout da janela: Exibição Vertical, Exibição Horizontal ou Modo de Exibição Misto.
  • Navegue entre as diferenças e conflitos.
  • Selecione os itens das versões esquerda e direita do arquivo para inclui-los no resultado.
  • Digite mais conteúdo no arquivo no painel Resultado.
  • Exiba o histórico do arquivo. Para obter mais informações, consulte Obter o histórico de um item.
  • Compare as versões do arquivo.
  • Anote o arquivo para consultar quem alterou o que. Para obter mais informações, consulte Exibir alterações de arquivo usando a anotação.

Quando estiver satisfeito com o conteúdo do painelResultados, escolha Aceitar Mesclagem.

O resultado da resolução do conflito aparece no painel Resultado.