Articulo de referencia

Comparación de archivos

La herramienta de comparación de KDE, Kompare, En informática , la comparación de archivos consiste en el cálculo y la visualización de las diferencias y similitudes entre objet...

La herramienta de comparación de KDE, Kompare,

En informática , la comparación de archivos consiste en el cálculo y la visualización de las diferencias y similitudes entre objetos de datos, normalmente archivos de texto como el código fuente .

Los métodos, implementaciones y resultados se denominan típicamente diff , [ 1 ] en referencia a la utilidad de Unix . La salida puede presentarse en una interfaz gráfica de usuario o utilizarse como parte de tareas más amplias en redes , sistemas de archivos o control de versiones .diff

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

Muchos editores de texto y procesadores de texto realizan una comparación de archivos para resaltar los cambios realizados en un archivo o documento.

Tipos de métodos

La mayoría de las herramientas de comparación de archivos encuentran la subsecuencia común más larga entre dos archivos. Cualquier dato que no se encuentre en dicha subsecuencia se presenta como un cambio, una inserción o una eliminación.

En 1978, Paul Heckel publicó un algoritmo que identifica la mayoría de los bloques de texto movidos. [ 2 ] Este se utiliza en la herramienta IBM History Flow . [ 3 ] Otros programas de comparación de archivos encuentran movimientos de bloques.

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 rodante 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 se realiza normalmente a nivel de palabra, mientras que en la mayoría de las herramientas de programación se realiza a nivel de línea. La comparación a nivel de byte o carácter resulta útil en algunas aplicaciones especializadas.

Mostrar

La forma de comparar archivos varía, siendo los enfoques principales mostrar dos archivos uno al lado del otro o un solo archivo con marcas que indiquen los cambios entre ambos. En ambos casos, especialmente en la visualización en paralelo, se puede utilizar el plegado de código o de texto para ocultar las partes sin cambios del archivo y mostrar únicamente las modificadas.

Razonamiento

Las herramientas de comparación se utilizan por diversas razones. Cuando se desea comparar archivos binarios, la comparación a nivel de bytes suele ser la mejor opción. Pero si se desea comparar archivos de texto o programas informáticos , una comparación visual lado a lado suele ser la mejor opción. [ 5 ] Esto le da al usuario la oportunidad de decidir qué archivo es el preferido para conservar, si los archivos deben fusionarse para crear uno que contenga todas las diferencias, [ 6 ] o quizás conservarlos ambos tal cual para una referencia posterior, mediante algún tipo de control de versiones.

La comparación de archivos es una parte importante, y probablemente 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 crucial. La corrupción ocurre sin previo aviso y sin que el usuario se dé cuenta; al menos, suele ser demasiado tarde para recuperar las partes perdidas. Generalmente, la única forma de saber con certeza si un archivo se ha corrompido es al usarlo o abrirlo de nuevo. De lo contrario, es necesario utilizar una herramienta de comparación para al menos detectar que se ha producido una diferencia. Por lo tanto, todos los programas de sincronización o copia de seguridad de archivos deben incluir la comparación de archivos para que sean realmente útiles y fiables. [ 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 un conjunto de tarjetas perforadas era equivalente. En 1957, John Van Gardner desarrolló un sistema para comparar las sumas de verificación de las secciones cargadas de 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), Studying Cooperation and Conflict between Authors with history flow Visualizations (PDF) , vol. 6, Viena: CHI, pp. 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). Comparación y fusión de archivos con Gnu Diff y Patch . Network Theory. 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 principal 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 .