He estado intentando crear un sistema de control de versiones usando cadenas (Archivos en Base64) en Javascript. Me imagino que en lugar de almacenar cada versión de un archivo como un archivo completamente nuevo, esto reducirá el espacio. En cambio, me gustaría crear una cadena de diferencias basada en un archivo original.
Por ejemplo: new_version("Hello world! My name is Bob.", "Hello world! My Papa is Sam.")
debería devolver algo como ?16?P?1?pa?4?Sam?1?
Donde el entero representa cuántos espacios omitir antes de realizar un cambio. El problema al que me enfrento son las palabras con diferentes longitudes. Reemplazar a Sam con Bill alteraría completamente la cadena restante. Me pregunto si hay una mejor manera que comparar cada personaje como lo hice para mi prototipo.