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 Controle de Versão do Team Foundation (TFVC) 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 obter, fazer check-in, desarquivar, mesclar ou reverter seus arquivos.
Embora possa ser frustrante encontrar conflitos, o sistema fornece informações e ferramentas para ajudá-lo a entender e resolver conflitos.
Você também pode resolver conflitos a partir da linha de comando usando o comando Resolver.
Gorjeta
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 espaço de trabalho público em uma máquina de desenvolvimento compartilhada pode ajudar. Para obter mais informações, consulte Criar e trabalhar com espaços de trabalho.
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 apenas os conflitos causados pela operação mais recente que você tentou. Quando a janela está nesse estado, aparece uma mensagem que começa: Filtro de caminho aplicado. Para mostrar todos os conflitos em seu espaço de trabalho, escolha Obter todos os conflitos. Uma mensagem que começa com: <N> Conflito(s) aparece.
Se tiver passado muito tempo desde que você fez alterações em arquivos em seu espaço de trabalho, novos conflitos podem ter ocorrido. Para atualizar a janela Resolver conflitos , escolha Atualizar.
Cada conflito contém informações e, às vezes, links que podem ajudá-lo 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, em seguida, selecionar 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 Comparação é aberta.
Anote para ver 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 anotações.
AutoResolver todos os conflitos
Por padrão, o sistema tenta resolver automaticamente todos os conflitos, a menos que você desative essa opção. Para desativar a AutoResolução Automática de Tudo, escolha Opções de ferramentas>. Na caixa de diálogo Opções, em Controle do>código-fonte Visual Studio Team Foundation Server, desmarque Tentar resolver conflitos automaticamente quando eles forem gerados.
Você também pode escolher manualmente AutoResolver Tudo na janela Resolver Conflitos e, em seguida, selecionar uma das seguintes opções:
Todos os tipos de conflito se você quiser que o sistema tente resolver os conflitos automaticamente usando todas as suas heurísticas.
Tipos de conflito específicos se você quiser que o sistema tente resolver os conflitos, mas deseja excluir algumas heurísticas.
A caixa de diálogo Escolher conflitos para resolver é exibida. Marque ou desmarque as opções que deseja habilitar ou desabilitar e escolha AutoResolução.
O sistema tenta resolver automaticamente os conflitos exibidos na janela Alterações pendentes . Todos os conflitos que o sistema não consegue resolver permanecem na janela. Você tem que resolver manualmente esses conflitos.
Compreender as opções automáticas
Você pode restringir os tipos de conflitos resolvidos automaticamente pela opção AutoResolver Tudo . Quando você escolhe AutoResolver Tudo e, em seguida, seleciona Tipos de Conflito Específicos, a caixa de diálogo Escolher Conflitos para Resolver é exibida.
Causa do conflito
Exemplo
Seleção da caixa de seleção
Alterações de conteúdo não conflitantes foram feitas em cada versão de um arquivo.
Na versão do arquivo à esquerda, um zero foi adicionado no início. No arquivo à direita, um três foi adicionado no final:
Conflitos com quaisquer alterações de conteúdo
As alterações de conteúdo foram feitas durante uma operação de obtenção ou check-in que são exclusivas para o espaço de trabalho ou durante uma operação de mesclagem ou reversão que são exclusivas para a versão de destino.
As entradas quatro e cinco foram adicionadas ao espaço de trabalho ou à versão de destino:
Conflitos com alterações de conteúdo feitas somente no espaço de trabalho local ou ramificação de destino
As alterações de conteúdo foram feitas durante a operação de obtenção ou check-in que são exclusivas para o servidor ou durante uma operação de mesclagem ou reversão que são exclusivas 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 ramificação de origem
Um arquivo foi renomeado no servidor durante uma operação get 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 chamado launch.cs e trabalhou nele. Durante esse tempo, outra pessoa fez check-in de um conjunto de alterações que afetava 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 pela renomeação de arquivo na versão do servidor ou ramificação de origem
Foram feitas alterações comuns de conteúdo que resultaram em conteúdo idêntico em cada versão. Ou, você alterou um arquivo, fez check-in por meio de uma compilação de check-in fechado e selecionou a opção Preservar minhas alterações pendentes localmente .
As alterações em cada versão resultaram em conteúdo de arquivo idêntico. As alterações podem ser no conteúdo dos arquivos, conforme mostrado no exemplo a seguir:
Conflitos causados por alterações idênticas no servidor e no espaço de trabalho
Essa opção também resolve conflitos causados por todas as outras operações, por exemplo, renomear, excluir, cancelar exclusão e ramificação, que resultam em arquivos idênticos.
Gorjeta
Se você marcar essa caixa de seleção, quando continuar, o sistema resolverá essas alterações baixando a versão do servidor para o espaço de trabalho.
Conflitos selecionados do AutoMerge
Para tentar resolver conflitos selecionados usando todas as opções de mesclagem automática anteriores, selecione um ou mais conflitos e escolha AutoMesclagem.
Gorjeta
Você pode pressionar e segurar a tecla Ctrl ou Shift para selecionar vários conflitos.
Nota
Se o AutoMerge estiver desativado, você deverá resolver manualmente os conflitos.
Resolver manualmente conflitos selecionados
Se o sistema não conseguir resolver automaticamente um conflito ou se quiser certificar-se 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 você pode tomar para resolver o conflito. As ações exibidas dependem do tipo de conflito e da operação que causou o conflito.
Usar a janela Mesclar
Quando alterações de conteúdo conflitantes causam um conflito, você pode escolher Mesclar alterações na ferramenta de mesclagem. A janela Mesclar é exibida.
Na janela Mesclar, você pode:
- Selecione o layout da janela: Modo de Exibição Vertical, Modo de Exibição Horizontal ou Modo de Exibição Misto.
- Navegue entre as diferenças e os conflitos.
- Selecione itens das versões esquerda e direita do arquivo para incluí-los nos resultados.
- Digite mais conteúdo no arquivo no painel Resultado .
- Veja o histórico do ficheiro. Para obter mais informações, consulte Obter o histórico de um item.
- Compare as versões do arquivo.
- Anote o arquivo para ver quem alterou o quê. Para obter mais informações, consulte Exibir alterações de arquivo usando anotações.
Quando estiver satisfeito com o conteúdo do painel Resultado , escolha Aceitar mesclagem.
O resultado da resolução do conflito aparece no painel Resultado .