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.
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.
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:
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.
Compare ou selecione a seta suspensa ao lado do ícone e escolha um comando. A janela Diff é aberta.
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.
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:
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:
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:
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:
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.
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.