stringtranslate.com

Comparación de archivos

La herramienta de diferenciación de KDE Kompare

Al editar documentos, códigos de programas o cualquier dato siempre se corre el riesgo de introducir errores. Al mostrar las diferencias entre dos o más conjuntos de datos, las herramientas de comparación de archivos pueden hacer que la computación sea más simple y más eficiente al centrarse en datos nuevos e ignorar los que no cambiaron. Conocido genéricamente como diff [1] por la utilidad Unix , existen varias formas de comparar fuentes de datos y mostrar los resultados. diff

Algunos programas de comparación de archivos ampliamente utilizados son diff , cmp , FileMerge , WinMerge , Beyond Compare y File Compare .

Debido a que comprender los cambios es importante para los escritores de códigos o documentos, muchos editores y procesadores de texto incluyen la funcionalidad necesaria para ver los cambios entre diferentes versiones de un archivo o documento.

Tipos de métodos

El método más eficaz para encontrar diferencias depende de los datos de origen y de la naturaleza de los cambios. Un enfoque es encontrar la subsecuencia común más larga entre dos archivos y luego considerar los datos no comunes como una inserción o una eliminación.

En 1978, Paul Heckel publicó un algoritmo que identifica los bloques de texto más movidos. [2] Esto se utiliza en la herramienta IBM History Flow . [3] Otros programas de comparación de archivos encuentran movimientos de bloques. [ se necesita aclaración ]

Algunas herramientas especializadas de comparación de archivos encuentran la subsecuencia creciente más larga entre dos archivos. [4] El protocolo rsync utiliza una función hash continua para comparar dos archivos en dos computadoras distantes con una baja sobrecarga de comunicación.

La comparación de archivos en los procesadores de texto suele realizarse a nivel de palabras, mientras que en la mayoría de las herramientas de programación la comparación se realiza a nivel de línea. La comparación a nivel de bytes o caracteres es útil en algunas aplicaciones especializadas.

Mostrar

La forma óptima de mostrar los resultados de una comparación de archivos depende de muchos factores, incluido el tipo de datos de origen. Las líneas fijas de código de programación proporcionan una unidad de comparación clara. Esto no funciona con documentos, donde agregar una sola palabra puede hacer que las siguientes líneas se ajusten de manera diferente, pero aún así no cambien el contenido.

Las formas más populares de mostrar los cambios son en paralelo o en una vista consolidada que resalta las inserciones y eliminaciones de datos. Ya sea en la visualización en paralelo, en el plegado de código o en el plegado de texto , en aras de la eficiencia, la interfaz puede ocultar partes del archivo que no cambiaron y mostrar solo los cambios. [ se necesita aclaración ]

Razonamiento

Hay varias razones para utilizar herramientas de comparación y las propias herramientas utilizan enfoques diferentes. Para comparar archivos binarios, una herramienta puede utilizar la comparación a nivel de bytes. Al comparar archivos de texto o programas de computadora , muchas herramientas utilizan una comparación visual en paralelo. [5] Esto le da al usuario la oportunidad de elegir qué cambios conservar o rechazar antes de fusionar los archivos en una nueva versión. [6] O tal vez para mantenerlos a ambos como están para referencia posterior, a través de alguna forma de control de "versiones".

La comparación de archivos es un proceso importante e integral de sincronización y copia de seguridad de archivos . En las metodologías de respaldo, la cuestión de la corrupción de datos es importante. Rara vez hay una advertencia antes de que ocurra la corrupción; esto puede dificultar o imposibilitar la recuperación. A menudo, el problema sólo se manifiesta la próxima vez que alguien intenta abrir un archivo. En esta circunstancia, una herramienta de comparación puede ayudar a aislar la introducción del problema. [7]

Usos históricos

Antes de la comparación de archivos, existían máquinas para comparar cintas magnéticas o tarjetas perforadas. El reproductor de tarjetas IBM 519 podía determinar si una baraja de tarjetas perforadas era equivalente. En 1957, John Van Gardner desarrolló un sistema para comparar las sumas de verificación de secciones cargadas de programas Fortran para depurar problemas de compilación en el IBM 704 . [8]

Ver también

Referencias

  1. ^ "diff", el archivo de jerga
  2. ^ Heckel, Paul (1978), "Una técnica para aislar diferencias entre archivos" (PDF) , Comunicaciones del ACM , 21 (4): 264–268, doi :10.1145/359460.359467, S2CID  207683976 , consultado el 4 de diciembre de 2011
  3. ^ Viegas, Fernanda B.; Wattenberg, Martín; Kushal, Kushal Dave (2004), Estudio de la cooperación y el conflicto entre autores con visualizaciones de flujo histórico (PDF) , vol. 6, Viena: CHI, págs. 575–582 , consultado el 1 de diciembre de 2011
  4. ^ Liwei Ren; Jinsheng Gu; Luosheng Peng (18 de abril de 2006). "Algoritmos para la alineación de código a nivel de bloque de archivos binarios de software". Patentes de Google . USPTO . Consultado el 10 de mayo de 2019 .
  5. ^ MacKenzie, David; Eggert, Paul; Stallman, Richard (2003). Comparar y fusionar archivos con Gnu Diff y Patch. Teoría de redes. ISBN 978-0-9541617-5-0.
  6. ^ "Software de comparación de archivos: vc-dwim y vc-chlog". www.gnu.org . Consultado el 16 de abril de 2023 .
  7. ^ "SystemRescue - Página de inicio de System Rescue". www.system-rescue.org . Consultado el 16 de abril de 2023 .
  8. ^ John Van Gardner. "Fortran y la génesis del proyecto Intercept" (PDF) . Consultado el 6 de diciembre de 2011 .

enlaces externos