Diff Checker

Diff Checker

Compara dos textos o fragmentos de código con resaltado por línea y palabra. En paralelo o unificado, ignorando espacios o mayúsculas — todo en tu navegador.

No. Toda la herramienta es JavaScript que se ejecuta dentro de esta página. El algoritmo de diff (LCS, subsecuencia común más larga) se ejecuta en tu CPU y el resultado se renderiza directamente en el DOM. Abre DevTools → Network y observa: no se dispara ninguna petición durante la comparación. Es seguro pegar código interno, datos de clientes, borradores de contratos o cualquier cosa que no querrías que registrara una herramienta de servidor.

Primero dividimos ambas entradas en líneas y ejecutamos un algoritmo LCS (longest common subsequence). Las líneas que coinciden en ambos lados se marcan como iguales. Las que no coinciden se emparejan en filas de 'cambio' cuando una adición aparece junto a una eliminación. Para cada cambio emparejado, ejecutamos un segundo LCS sobre las palabras de la línea (separadas por espacios) para que solo se iluminen en rojo/verde las palabras realmente editadas — no toda la línea.

Por qué iKit Diff Checker

Un entorno de diff de texto rápido y limpio, sin anuncios, ventanas emergentes ni rastreadores de terceros — pensado para desarrolladores, redactores y cualquiera que necesite detectar qué cambió.

Vista en paralelo y unificada

Cambia entre dividida (dos columnas, estilo IDE clásico) y unificada (una sola columna con marcadores +/−) con un clic. Ambas vistas muestran números de línea y resaltan cada cambio en línea.

Resaltado por palabra

Cuando dos líneas cambian, ejecutamos un segundo diff por palabra para que solo brillen las diferencias reales — no toda la línea. Más fácil detectar una errata en una línea de 200 caracteres.

Ignorar espacios e ignorar mayúsculas

Activa la sensibilidad a espacios y mayúsculas para filtrar cambios cosméticos (sangrías reformateadas, ajustes de capitalización) y centrarte en las ediciones reales.

Privacidad por diseño

Ambos textos permanecen en tu pestaña del navegador. El algoritmo de diff se ejecuta localmente en JavaScript. Verificable en DevTools → Network: no se envía ninguna petición mientras escribes.

Estadísticas y copia

Comprueba de un vistazo cuántas líneas se añadieron, eliminaron y modificaron. Un clic copia el diff al portapapeles para pegarlo en una revisión de código o mensaje de commit.

Funciona sin conexión

Una vez cargada la página, cada byte se calcula localmente. Funciona en un avión, detrás de un firewall corporativo o sin red alguna — útil para revisiones de código confidenciales.

Cómo funciona realmente un diff checker

Las matemáticas que hay detrás son más antiguas que la web — un algoritmo de 1965 llamado LCS, más un refinamiento de 1986 de Eugene Myers.

  1. 1

    Dividir en líneas

    Ambas entradas se dividen por \n (o \r\n). Cada línea se convierte en un token. Comparamos tokens — no caracteres — porque la mayoría de las ediciones en código o documentos reales añaden, eliminan o modifican líneas enteras.

  2. 2

    Calcular el LCS

    La subsecuencia común más larga (LCS) es el mayor conjunto de líneas que aparecen en el mismo orden en ambas entradas. Rellenamos una tabla de programación dinámica desde la esquina inferior derecha; cada celda guarda la longitud del LCS desde esa posición hasta el final. Esto requiere tiempo y memoria O(m × n).

  3. 3

    Recorrer la tabla para derivar las operaciones

    Comenzando desde la esquina superior izquierda de la tabla, avanzamos: si las dos líneas actuales coinciden, emitimos un equal; en caso contrario, elegimos la dirección (derecha o abajo) que conserve la longitud del LCS, emitiendo un delete o un insert. El resultado es una secuencia de operaciones que convierte el Original en el Modificado.

  4. 4

    Diff por palabra dentro de los pares cambiados

    Cuando una eliminación va seguida de una inserción, las emparejamos como una fila de cambio. Para resaltar solo las partes que difieren dentro de la línea, ejecutamos el mismo algoritmo LCS por segunda vez sobre las palabras de cada lado, separando por los límites de los espacios en blanco.

Tareas habituales con diff

Situaciones reales en las que recurrirás a un diff checker.

Revisar un PR antes de comentar

La vista de diff de GitHub es genial, pero a veces quieres ver solo los cambios sustantivos sin el ruido del formateador. Pega ambas versiones, activa Ignorar espacios y los reformateos cosméticos desaparecen — dejando solo las ediciones lógicas.

Comparar dos borradores de un contrato

Los equipos jurídicos y operativos suelen necesitar saber qué cambió entre la v1 y la v2 de un contrato. Pega ambos y obtén un diff coloreado con resaltado por palabra — sin Word, sin Control de cambios, sin subir cláusulas confidenciales a un servidor de terceros.

Comprobar qué hizo realmente la edición de un script

¿Ejecutaste un regex con sed/awk/Python sobre un archivo de configuración? Pega aquí el original y el resultado para confirmar que el script editó solo lo previsto. El resaltado a nivel de carácter detecta ediciones perdidas que un repaso visual rápido pasa por alto.

Detectar una errata en un texto traducido

Par de traducciones (origen frente a traducción, o dos traducciones del mismo origen) — el diff por palabra hace trivial encontrar una palabra omitida, una frase duplicada o un signo de puntuación volteado que se les escapó a los correctores.

Por qué importa hacer el diff localmente

Los textos que comparas suelen ser privados: código de repositorios internos, borradores de contratos, exportaciones de datos de clientes o copias de productos sin lanzar. Pegarlos en el servidor de un desconocido crea un rastro que no controlas. El diff checker de iKit es JavaScript ya cargado en tu pestaña del navegador — la comparación se ejecuta en tu CPU y nunca toca un socket de red.

  • Cero peticiones de red durante la comparación — verificable en DevTools → Network.
  • Las entradas permanecen en la memoria del navegador; se borran al pulsar Limpiar o al recargar la página.
  • Seguro para código interno, documentos cubiertos por NDA, transcripciones de soporte y cualquier contenido sujeto a políticas de residencia de datos.

Related guides

Deep-dive tutorials and tool comparisons from the iKit blog.

Preguntas frecuentes

¿Es seguro? ¿Se suben mis textos?

No. Toda la herramienta es JavaScript que se ejecuta dentro de esta página. El algoritmo de diff (LCS, subsecuencia común más larga) se ejecuta en tu CPU y el resultado se renderiza directamente en el DOM. Abre DevTools → Network y observa: no se dispara ninguna petición durante la comparación. Es seguro pegar código interno, datos de clientes, borradores de contratos o cualquier cosa que no querrías que registrara una herramienta de servidor.

¿Cómo funciona el resaltado por línea y palabra?

Primero dividimos ambas entradas en líneas y ejecutamos un algoritmo LCS (longest common subsequence). Las líneas que coinciden en ambos lados se marcan como iguales. Las que no coinciden se emparejan en filas de 'cambio' cuando una adición aparece junto a una eliminación. Para cada cambio emparejado, ejecutamos un segundo LCS sobre las palabras de la línea (separadas por espacios) para que solo se iluminen en rojo/verde las palabras realmente editadas — no toda la línea.

¿Cuál es la diferencia entre la vista dividida y la unificada?

La vista dividida muestra los dos textos en paralelo con números de línea emparejados — más cercana a cómo se ve un diff en los IDE (VS Code, JetBrains). La vista unificada muestra una sola columna con líneas con prefijos +/− — más cercana a lo que imprime `git diff`. Elige la que mejor se adapte a tu flujo de trabajo; ambas representan los mismos datos.

¿Para qué sirve 'ignorar espacios en blanco'?

Reformatear código (ejecutar Prettier, alternar tabuladores/espacios, normalizar finales de línea) añade ruido visual que entierra los cambios reales. Activar 'Ignorar espacios en blanco' colapsa secuencias de espacios/tabuladores en un solo espacio y recorta los bordes de línea antes de comparar — así solo ves las ediciones significativas, no las cosméticas.

¿Cuál es la mayor entrada que puedo comparar en el navegador?

El algoritmo LCS usa memoria O(m × n), donde m y n son el número de líneas de cada lado. iKit limita la comparación a unos 4 millones de celdas (≈16 MB), lo que abarca cómodamente unos miles de líneas frente a otros miles de líneas. Para diffs mayores (volcados de bases de datos completos, registros de archivos enteros), usa una herramienta CLI como `diff` o `git diff --no-index` — esas usan un algoritmo más inteligente (Myers diff) que escala a millones de líneas.