Une fusion à trois voies consiste à fusionner deux modifications d'un fichier de base au fur et à mesure qu'elles sont appliquées, par opposition à l'application d'une modification, puis à la fusion du résultat avec l'autre.
Par exemple, le fait d'avoir deux modifications où une ligne est ajoutée au même endroit pourrait être interprété comme deux ajouts, et non comme une modification d'une ligne.
Par exemple, le fichier a
a été modifié par deux personnes, l'une ajoutant moose
en ajoutant mouse
.
#File a
dog
cat
#diff b, a
dog
+++ mouse
cat
#diff c, a
dog
+++ moose
cat
Maintenant, si nous fusionnons les changesets au fur et à mesure que nous les appliquons, nous obtiendrons (fusion à 3 voies)
#diff b and c, a
dog
+++ mouse
+++ moose
cat
Mais si nous appliquons b, puis regardons le changement de b à c, il semblera que nous changeons juste un 'u' en 'o' (fusion à deux voies).
#diff b, c
dog
--- mouse
+++ moose
cat