Nombre del progtwig que tabula las diferencias de files

Estoy interesado en crear una herramienta de control de versiones personalizada. Me gustaría saber si hay una herramienta de código abierto que puede comparar 2 files de text o binarys diferentes (probablemente será similar con algunas modificaciones), generar algún tipo de object que describa los cambios / diferencias y produzca un file que pueda almacenar en mi database de seguimiento. Obviamente, me gustaría que el progtwig hiciera lo contrario: dado el file original y mi file de diferencias, puedo regenerar el file actualizado.

¿Hay un nombre para una function como esta?

Yo usaría el progtwig de línea de command git . Puede mostrar diferencias de files en un formatting bien definido. Estos files 'diff' se pueden usar para cambiar un file al siguiente en la secuencia.