Estou começando com o SVN e muitas fontes dizem que a fusão é muito difícil no SVN, em comparação com as ferramentas DVCS. As perguntas mais recentes que pude encontrar aqui no SE são de 2012.
Às vezes, há uma menção de que o motivo é que o SVN anterior à v1.5 não tinha metadados, mas o SVN está na versão 1.8.9 agora.
Dado que o SVN agora é muito mais maduro que a v1.5, e especialmente o fato de não termos usado o SVN 1.5, não sofremos com a falta mencionada de metadados - ainda há muita validade nesses argumentos contra o SVN?
Entendo que o DVCS tem uma abordagem completamente diferente, que muitas vezes é mais desejável, mas para aqueles que "precisam" usar o SVN por qualquer motivo, a fusão não é mais um "inferno", é?
version-control
svn
merging
Torben Gundtofte-Bruun
fonte
fonte
Respostas:
Funciona bem se você se ater aos casos simples , mas existem alguns complexos que não.
As limitações em que consigo pensar:
Só pode encontrar o ancestral mais recente se estiver em um dos ramos envolvidos. Então, se você criar
branches/this
ebranches/that
tantotrunk
e, em seguida, tentar mesclarbranches/this
parabranches/that
, ele não saberá o que fazer. O que significa que você só pode mesclar ramificações de ou para seus pais. Você pode encontrar isso se iniciar duas ramificações de recursos e depois perceber que os recursos são interdependentes e precisam combiná-los.Embora afirme que pode rastrear renomeações, mesclar ramificações quando os arquivos foram movidos de um lado e modificados do outro lado nem sempre encontra os arquivos certos para mesclar, e corrigi-los manualmente é um pouco entediante, pois não deixa as informações necessárias em qualquer lugar. mão.
Os arquivos adicionados às vezes causam conflitos espúrios em mesclagens posteriores.
Como o subversion não possui um conceito separado de ramificação, você pode mesclar apenas uma subárvore de um projeto e isso pode levar a uma grande confusão rapidamente. É altamente recomendável ter sempre o cuidado de mesclar ramificações completas. Infelizmente, por algum motivo, às vezes as propriedades das informações de mesclagem aparecem nos subdiretórios, mesmo que pareçam supérfluas e a mesclagem foi realizada corretamente em todo o ramo.
Por último, mas não menos importante, é lento . As mesclagens em um projeto de qualquer tamanho sério geralmente levam minutos, onde a maioria do DVCS pode fazê-lo em menos de um segundo.
fonte
Pela minha experiência, a mesclagem no SVN foi 'corrigida' na versão 1.6. Eu trabalho no Mercurial e no SVN e, desde a versão 1.6 do SVN, a mesclagem parece ser a mesma quantidade de trabalho nas duas plataformas. A única exceção pode ser que você deve se lembrar de fornecer a
--reintegrate
opção ao mesclar de uma ramificação para o tronco usando o SVN.Esta é apenas a minha experiência operacional. Não sei nada sobre os internos do SVN.
fonte