En travaillant sur TortoiseSVN nous avons constaté qu'à chaque fois que les utilisateurs ont envoyé des patches pour améliorer le projet ou simplement réparer des bugs, nous avions beaucoup de travail uniquement pour appliquer ces patches. Et la plupart du temps ces patches étaient périmés et ne pouvaient pas être appliqués avec l'outil de patch en ligne de commande http://unxutils.sourceforge.net/ parce que nous travaillions sur ces fichiers et que parfois, nous les avions déjà modifiés.
C'est aussi la raison principale pour laquelle TortoiseSVN n'avait pas un → implémenté au début : nous préférions que les utilisateurs nous envoient le fichier entier puisqu'il était plus facile d'appliquer des patches avec ceux-ci.
Nous avons donc passé beaucoup de temps à chercher sur internet un outil visuel pouvant appliquer des patches, mais tout ce que nous avons trouvé c'est qu'un tel outil n'existe pas. Alors, pour faire court, nous avons décidé que si personne n'avait pu fournir un tel outil, nous devions créer le notre. C'est ainsi que TortoiseMerge est né.
TortoiseSVN utilise la librairie Subversion, qui intègre un bon moteur de différenciation, il est donc naturel d'utiliser cette librairie au lieu du diff GNU.