Comparación de diferencias de texto (Diff)
Compara dos bloques de texto línea por línea y muestra en color las líneas añadidas y eliminadas. Útil para revisar cambios en archivos de configuración, corregir documentos o hacer revisión de código sin Git. Todo el cálculo se realiza en el navegador; el contenido introducido nunca se envía a un servidor.
Comparar dos textos línea por línea
Esta es la herramienta a la que acudir cuando quiere establecer qué cambió en un archivo de configuración, o dónde se revisó un escrito. Enfrenta dos textos línea por línea y marca en colores distintos las líneas añadidas y las suprimidas. Todo se calcula dentro del navegador, así que nada de lo que pegue sale de su equipo.
**Conviene saber, al leer el resultado, que un algoritmo de diferencias busca la secuencia de ediciones más corta.** Por eso **lo que una persona ve como "este párrafo bajó" la máquina lo expresa como una supresión emparejada con un alta.** No existe notación alguna para el movimiento como tal. El otro punto es que la comparación corre por líneas, de modo que **una línea que difiere en un solo carácter se informa como cambiada por entero.** El caso más desconcertante aquí es una diferencia en los finales de línea o en los espacios finales, que puede marcar como cambiada cada línea aunque nada parezca distinto. Cuando una diferencia sale improbablemente grande, eso es lo primero que debe sospecharse.
Cómo se usa
- Pegue el original en A Ponga el contenido tal como estaba antes del cambio.
- Pegue la revisión en B Ponga el contenido tal como quedó después del cambio.
- Lea las diferencias coloreadas **Las líneas añadidas y las suprimidas se muestran en colores distintos.**
- Sospeche de los finales de línea si la diferencia es enorme **Una diferencia únicamente en los finales de línea o en los espacios finales marca como cambiada cada línea.**
Consejos para aprovecharla mejor
- Pega la versión anterior y la posterior de un archivo de configuración (.env, YAML, JSON, etc.) para ver de inmediato qué líneas se añadieron o eliminaron.
- Incluso sin tener Git instalado, puedes hacer una revisión de código sencilla o corregir un documento con solo copiar y pegar dos versiones.
- Una línea que simplemente cambió de posición se detecta como una eliminación más una adición, no como un "movimiento"; tenlo en cuenta al interpretar el resultado.
- Los espacios, saltos de línea y mayúsculas/minúsculas se comparan de forma estricta, por lo que una línea que solo cambió su sangría también aparecerá como modificada.
- Al comparar textos largos, poner un párrafo por línea antes de pegarlo facilita ver las diferencias por párrafo de un vistazo.
Cuándo resulta útil
Revisar un cambio en un archivo de configuración
Antes de que pase a producción puede ver que solo ha cambiado lo que pretendía cambiar.
Cotejar el resultado de una revisión
**Enfrentar un borrador con su reescritura deja seguir de un vistazo por dónde pasó la mano.**
Revisar sin Git
Los archivos que nunca estuvieron bajo control de versiones pueden compararse igualmente con solo pegarlos.
Confirmar que una salida es reproducible
Compare los resultados de ejecutar dos veces el mismo proceso y confirme que nada diverge.
Términos de las diferencias
- Línea añadida
- Una línea presente solo en B.
- Línea suprimida
- Una línea presente solo en A. **Una línea que apenas se ha movido también aflora como una supresión emparejada con un alta.**
- Comparación por líneas
- Una comparación que trata cada línea como una unidad. **Una diferencia de un carácter marca la línea entera como cambiada.**
- Final de línea
- El carácter que marca el fin de una línea: CRLF en Windows, LF en los sistemas tipo Unix. **Una diferencia aquí puede presentarse como si difirieran todas las líneas.**
- Bloque
- Un solo trozo dentro de una diferencia donde los cambios se agrupan.
- Contexto
- Las líneas sin cambios mostradas encima y debajo de una modificada, incluidas para situar mejor la posición.
Preguntas frecuentes
A propósito — cómo el LCS (subsecuencia común más larga) calcula las diferencias de texto
El algoritmo más conocido para detectar diferencias entre dos textos es el "algoritmo de diferencias de Myers", publicado en la década de 1970 por el científico informático Eugene Myers, de IBM. El comando `diff` de los principales sistemas de control de versiones, como Git y SVN, se basa en esta familia de algoritmos, detectando de forma eficiente las líneas añadidas y eliminadas. Esta herramienta sigue la misma idea, calculando la subsecuencia común más larga (LCS) para reducir el resultado a un conjunto mínimo de cambios.
La subsecuencia común más larga (LCS) es la secuencia más larga que aparece, en el mismo orden, en ambas secuencias comparadas; en este caso, la secuencia de líneas. La diferencia entre dos textos se obtiene tratando toda línea que no forme parte de este LCS como "eliminada" o "añadida"; cuanto más larga sea la LCS, menos cambios se mostrarán en pantalla. Una técnica llamada programación dinámica (DP) hace posible este cálculo incluso para textos con muchas líneas.
Los algoritmos de diferencias tienen una limitación conocida: cuando una línea simplemente se mueve a otra posición, la mayoría de las implementaciones no lo detectan como un "movimiento", sino que lo muestran como una eliminación junto con una adición. Por eso, al comparar textos cuyo orden de líneas se ha reorganizado mucho, la diferencia puede parecer mayor de lo que realmente es el cambio. Conocer esta particularidad ayuda a interpretar los resultados sin confusiones.