¿Cómo fusionar mediante progtwigción los archivos de texto con posibles conflictos (ala git o svn, etc.)?

Como parte de un proyecto más grande, quiero la capacidad de tomar dos cuerpos de texto y entregarlos a un algoritmo de combinación que devuelva un resultado fusionado automáticamente (en los casos en que los cambios no sean conflictivos) o arroje un error y (potencialmente) produce un solo documento de texto con los cambios en conflicto resaltados.

Básicamente, solo quiero una forma programática de hacer lo que cada sistema de control de fonts en el planeta hace internamente, pero me cuesta mucho encontrarlo. Hay toneladas de GUIs visuales para hacer este tipo de cosas que dominan mis resultados de búsqueda, pero ninguna de ellas parece hacer que el algoritmo de fusión del núcleo sea fácilmente accesible. ¿Todos confían en algún algoritmo / biblioteca común y bien entendido y yo simplemente no sé el nombre, así que estoy teniendo dificultades para buscarlo? ¿Es este un pequeño cambio en diff y debería buscar las bibliotecas de diferencias en lugar de las bibliotecas de combinación?

Las bibliotecas de Python serían de gran ayuda, pero puedo vivir con la sobrecarga de interactuar con alguna otra biblioteca (o solución de línea de comandos) si tengo que hacerlo; esta operación debe ser relativamente infrecuente

Probablemente esté buscando algoritmos de fusión como la combinación de 3 vías, que puede encontrar en muchos proyectos de código abierto, por ejemplo, en el bazar VCS ( fuente merge3.py ).