svn merge
é sensível à ascendência. Isso significa que quando você está tentando mesclar qualquer conjunto de alterações (de uma ramificação, do tronco, de qualquer coisa) a ordem é preservada e o svn tenta mesclar as alterações uma a uma. Isso é muito bom, você apenas simula que cada pequena mudança ocorre nos ramos, então nada é perdido. Toda vez que o svn fica parado devido ao alto número de conflitos, ele pára e pede para você resolver os conflitos antes que a mesclagem seja retomada.
Se duas ramificações são isoladas, não são mescladas (sincronizadas) com frequência e são mantidas nesse estado por um longo tempo (como no seu caso), esse comportamento é realmente doloroso. Você pode simplesmente ignorar a ascendência (versões entre ramificação e HEAD) e fazer uma mesclagem mais simples usando o sinalizador --ignore-ancestry
. Dessa forma, a mesclagem determina as diferenças a serem mescladas, assim como svn diff
determina as diferenças entre as duas versões, sem considerar a ascendência.
Observe que você deve examinar sua cópia de trabalho mesclada e ter certeza de que tudo está como você deseja, já que ignorar a ancestralidade também ignora algumas das alterações feitas no caminho, mas não foi feito na versão mais recente.