Guías de diff
Cómo funciona la comparación de textos, cómo leer el resultado y qué opción usar en cada caso.
¿Cómo encuentra diff las diferencias? — LCS y el algoritmo de Myers
Explicación sencilla de cómo diff encuentra las diferencias entre dos textos: la subsecuencia común más larga (LCS), el script de edición, el algoritmo O(ND) de Myers y la comparación por líneas y por palabras.
02 · guide/diff-algorithmsMyers, Patience e Histogram — comparación de algoritmos diff
Cómo funciona cada valor de la opción --diff-algorithm de git diff (myers, minimal, patience, histogram) y por qué dan resultados distintos, con ejemplos.
03 · guide/read-unified-diffCómo leer un diff unificado (patch) — guía para la revisión de código
Leemos paso a paso, con ejemplos, las cabeceras --- +++ de git diff y de los archivos patch, los números de la cabecera de hunk @@, las líneas de contexto, la marca No newline at end of file y las cabeceras extendidas diff --git.
04 · guide/whitespace-optionsDiferencias entre las opciones para ignorar espacios — diff -b, -w, -B, -Z y sus equivalentes en git
Comparamos con ejemplos y con las opciones de GNU diff y git la diferencia exacta entre ignorar espacios al final de línea, ignorar la cantidad de espacios (-b), ignorar todos los espacios (-w), ignorar líneas en blanco (-B) e ignorar mayúsculas.
05 · guide/compare-documentsRevisar documentos y comparar contratos — cómo encontrar todas las diferencias entre dos versiones
Procedimiento y consejos para comparar como texto un borrador y su versión corregida, o el contrato enviado y el devuelto: comparación por bloques y por caracteres, limpieza de los saltos de línea de un PDF y lista de comprobación para contratos.
06 · guide/json-diffCómo comparar JSON — ordenar claves y normalizar
Cómo eliminar las diferencias falsas que aparecen al comparar dos JSON por el orden de las claves, la sangría o la notación de los números, y qué pasa con el orden de los arrays, los enteros grandes y JSON Patch.
07 · guide/line-endingsCaracteres de fin de línea (CRLF y LF) y diferencias invisibles — cuando todas las líneas aparecen cambiadas
Las causas de que diff marque todas las líneas como distintas aunque a la vista sean iguales: saltos de línea CRLF y LF, salto de línea al final del archivo, BOM, tabuladores y espacios, espacios especiales y normalización Unicode, y cómo resolverlas.