Penso que, para responder à sua pergunta, primeiro precisamos ver por que os conflitos acontecem e qual é o verdadeiro significado e processo de fusão?
Os conflitos ocorrem apenas quando dois ou mais desenvolvedores estão trabalhando no mesmo arquivo ao mesmo tempo e depois tentam fazer check-in. O primeiro desenvolvedor não terá nenhum conflito, é claro. Mas o segundo (terceiro, quarto e assim por diante) teria conflitos. Por que, porque ele tem algum código que é parcial ou totalmente diferente do código existente no servidor.
Isso por natureza significa que o segundo desenvolvedor tem algo em mente diferente do primeiro desenvolvedor. Essa diferença pode variar de estilo, como usar em new UserManager().GetUserName()
vez do UserManager userManager = new UserManager(); userManager.GetUserName();
nível mencionado, o que significa que os dois desenvolvedores tiveram idéias diferentes de como refatorar o código para melhorá-lo.
A fusão, por outro lado, não significa que os desenvolvedores possam fazer check-in de seu código sem considerar conflitos. Eles devem e devem resolver esses conflitos. Se os conflitos não forem importantes, eles poderão fazer check-in e substituir o código anterior. Mas quando virem algo completamente diferente, devem ligar para o desenvolvedor anterior e conversar com ele, para que ambos possam se coordenar juntos para verificar a melhor solução.
Por exemplo, se você pedir a dois desenvolvedores para melhorar a biblioteca de pagamentos on-line e o trabalho deles se sobrepor, isso significa que pelo menos em alguns lugares, existem 2 soluções diferentes. Portanto, uma dessas soluções deve ser mencionada e aceita, assim registrada, como a melhor solução.
Não concordo em impedir essas circunstâncias, pois devemos tender a ser mais reais do que teóricos. Às vezes, um cara é realmente bom em CSS, enquanto outro é realmente bom em marcação do ASP.NET. Mas o trabalho deles pode entrar em conflito quando ambos devem trabalhar na página de login para fazê-lo funcionar. Quero dizer, se pensamos real (não ideal), podemos ver que muitas vezes esse fenômeno (conflito) acontece.
Outro ponto que gostaria de mencionar é o uso de ferramentas para ajudá-lo no processo de check-in. Essas ferramentas geralmente visualizam a diferença entre o código do servidor e o código do desenvolvedor e ajudam muito na determinação de qual parte deve ser registrada.