Comparar el “antes” y el “después” para que solo resalte lo que cambió: eso es un diff. Lo usas en la revisión de código con Git, al comparar copias de configuración, al reconciliar respuestas de API y más.

Cómo leer diferencias de texto (Diff): comparación por líneas y por palabras

Este artículo explica los conceptos básicos de leer diffs, la diferencia entre la comparación por líneas y por palabras, y el uso práctico, con ejemplos concretos.

Lo básico: qué significan + y -

El formato unified más común usa un símbolo inicial en cada línea.

 function greet(name) {
-  return "Hello " + name;
+  return `Hello ${name}`;
 }
  • Las líneas que empiezan con - (rojo) son líneas eliminadas
  • Las líneas que empiezan con + (verde) son líneas añadidas
  • Las líneas sin marca están sin cambios (se muestran como contexto)

Así, cuando “modificas” una línea, un diff lo representa como eliminar la línea antigua y añadir la nueva.

Por líneas frente a por palabras

Los diffs vienen en dos granularidades principales.

Por líneas (line diff)

Juzga cada línea como “igual o distinta”. Bueno para código y archivos de configuración. La desventaja: incluso un cambio de un carácter muestra toda la línea como cambiada, así que no ves qué palabra cambió.

Por palabras/caracteres

Resalta qué parte dentro de una línea cambió. Brilla para corregir texto y comparar líneas largas (como JSON minificado).

Considera este cambio:

Antes:   El precio es 1000 yenes sin impuestos
Después: El precio es 1100 yenes con impuestos

Un diff por líneas solo te dice “esta línea cambió”, pero un diff por palabras resalta solo “sin→con” y “1000→1100”, dejando el cambio obvio de un vistazo.

La trampa de los espacios y los finales de línea

A veces un diff muestra “todas las líneas cambiaron”, lo cual sorprende. La causa suele ser una diferencia invisible.

  • Finales de línea: mezclar CRLF de Windows y LF de Unix marca cada línea como distinta.
  • Sangría: tabulaciones frente a espacios, o espacios al final.
  • Espacios de ancho completo frente a medio: se ven casi idénticos pero son caracteres distintos.

Para ver solo los cambios significativos, activa la opción “ignorar espacios en blanco” de la herramienta de diff para extraer las diferencias esenciales. Por el contrario, déjala desactivada cuando el espacio en blanco importa (como en algunos archivos de configuración).

Usos prácticos

  • Autorevisión antes de la revisión de código: revisa tus cambios antes de hacer commit para detectar código de depuración olvidado o ediciones no deseadas.
  • Comparar archivos de configuración: pon lado a lado el .env o la config de un entorno que funciona frente a otro que falla y aísla la causa por el diff.
  • Reconciliar respuestas de API: compara el JSON esperado con la respuesta real para encontrar campos faltantes (formatea antes el JSON de una línea para mayor legibilidad).
  • Corregir texto: compara un borrador antes y después de editar a nivel de palabra para confirmar qué cambió.

Compara datos sensibles localmente

Los archivos de configuración y los registros pueden contener claves de API o datos personales. Es mejor evitar pegar tales datos en un servicio en línea externo. La herramienta de diff de texto procesa todo dentro de tu navegador y nunca envía tu entrada a un servidor. Con la pestaña Network abierta, puedes confirmar que no se dispara ninguna solicitud al comparar.

Preguntas frecuentes

¿Por qué cambiar una línea produce un diff de dos líneas?

Porque un diff expresa un “cambio” como una “eliminación más una adición”. La línea original aparece como - y la nueva como +, así que una edición de una línea parece de dos. Cambia a la comparación por palabras para resaltar solo la parte que realmente cambió.

El diff muestra todas las líneas como cambiadas.

Suele deberse a finales de línea distintos (CRLF frente a LF), espacios al final o mezcla de tabulaciones/espacios en la sangría. Prueba la opción “ignorar espacios en blanco” o normaliza los finales de línea de antemano.

¿Puede manejar archivos grandes?

Las herramientas en el navegador pueden volverse lentas con archivos extremadamente grandes. En ese caso, extrae solo el rango que necesitas comparar, o usa diff o git diff de línea de comandos en paralelo. Para comparaciones cotidianas de código y configuración, una herramienta en el navegador es de sobra práctica.