stringtranslate.com

Comparación de archivos

La herramienta de comparación de KDE Kompare

La edición de documentos, códigos de programas o cualquier dato siempre conlleva 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 simplificar y hacer más eficiente el cálculo centrándose en los datos nuevos e ignorando lo que no cambió. Conocidas genéricamente como diff [1] por la utilidad de Unix , existen diversas 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 .

Dado que comprender los cambios es importante para los escritores de código 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 consiste en encontrar la subsecuencia común más larga entre dos archivos y, a continuación, 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 los bloques movidos. [ Aclaración necesaria ]

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 baja sobrecarga de comunicación.

La comparación de archivos en los procesadores de texto se realiza normalmente a nivel de palabra, 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 resulta ú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, en los que agregar una sola palabra puede hacer que las líneas siguientes se ajusten de manera diferente, pero sin cambiar 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. En la vista en paralelo, el plegado de código o el plegado de texto , por razones de eficiencia, la interfaz puede ocultar partes del archivo que no cambiaron y mostrar solo los cambios. [ Aclaración necesaria ]

Razonamiento

Existen varias razones para utilizar herramientas de comparación, y las herramientas en sí mismas utilizan diferentes enfoques. Para comparar archivos binarios, una herramienta puede utilizar una comparación a nivel de bytes. Para comparar archivos de texto o programas informáticos , muchas herramientas utilizan una comparación visual lado a lado. [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 mantenerlos 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 la sincronización y la copia de seguridad de archivos . En las metodologías de copia de seguridad, el problema de la corrupción de datos es importante. Rara vez hay una advertencia antes de que se produzca la corrupción, esto puede dificultar o imposibilitar la recuperación. A menudo, el problema solo se hace evidente 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 IBM 519 Card Reproducer podía determinar si una baraja de tarjetas perforadas era equivalente. En 1957, John Van Gardner desarrolló un sistema para comparar las sumas de comprobación de las secciones cargadas de los programas Fortran para depurar problemas de compilación en el IBM 704. [ 8]

Véase también

Referencias

  1. ^ "diff", El archivo de jerga
  2. ^ Heckel, Paul (1978), "Una técnica para aislar diferencias entre archivos" (PDF) , Communications of the ACM , 21 (4): 264–268, doi :10.1145/359460.359467, S2CID  207683976 , consultado el 4 de diciembre de 2011
  3. ^ Viégas, Fernanda B.; Wattenberg, Martin; 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". Google Patents . USPTO . Consultado el 10 de mayo de 2019 .
  5. ^ MacKenzie, David; Eggert, Paul; Stallman, Richard (2003). Comparación y fusión de 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 de Project Intercept" (PDF) . Consultado el 6 de diciembre de 2011 .

Enlaces externos