No es tanto el hecho de que se distribuyan, sino más bien que hacen un seguimiento de conjuntos de cambios en lugar de versiones. (Sin embargo, los sistemas distribuidos generalmente funcionan con conjuntos de cambios, mientras que los sistemas centralizados a menudo usan versiones, porque los sistemas distribuidos simplemente no funcionan con un enfoque basado en versiones, mientras que los sistemas centralizados pueden salirse con la suya).
Subversion dice, OK, primero tuve esta versión y luego tuve esa versión. Y luego, cuando es momento de fusionarse, toma las dos versiones, las compara y hace conjeturas sobre cómo combinarlas. Git, mercurial, y SCM similares, digamos, OK, primero no tenía nada, luego alguien hizo este cambio y luego alguien más hizo ese cambio, etc. Cuando se trata del momento de la fusión, básicamente todo lo que tienen que hacer es aplicar los cambios en el correcto orden, corrigiendo los números de línea aquí y allá y teniendo en cuenta el cambio de nombre de archivo, pero eso es básicamente eso.
Subversion realmente no tiene suficiente información para realizar una fusión inteligente: solo ve las diferencias, pero no de dónde vienen.
Creo que gran parte del "debate de la fusión SVN" proviene de los aficionados DVCS. La fusión es una de las cosas que SVN mejoró mucho con CVS, pero la mala reputación de CVS (merecidamente) podría reflejarse en SVN. En nuestro equipo nos fusionamos mucho en SVN, y no sé de problemas. – sbi
Muy relacionado: http://stackoverflow.com/questions/2613525/what-makes-merging-in-dvcs-easy – kolobos