En informática , la comparación de archivos es el cálculo y la visualización de las diferencias y similitudes entre los objetos de datos, generalmente archivos de texto como el código fuente .
Los métodos, implementaciones y resultados generalmente se denominan diff , [1] después de la utilidad Unix . La salida puede presentarse en una interfaz gráfica de usuario o usarse como parte de tareas más grandes en redes , sistemas de archivos o control de revisiones .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 en un 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 esté en la subsecuencia común más larga se presenta como una inserción o eliminación.
En 1978, Paul Heckel publicó un algoritmo que identifica la mayoría de los bloques de texto movidos. [2] Esto se utiliza en la herramienta IBM History Flow . [3] Otros programas de comparación de archivos encuentran movimientos de bloques. [ 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 una sobrecarga de comunicación baja.
La comparación de archivos en los procesadores de texto suele realizarse a nivel de palabra, mientras que la comparación en la mayoría de las herramientas de programación se realiza a nivel de línea. La comparación de bytes o de caracteres es útil en algunas aplicaciones especializadas.
Monitor
La visualización de la comparación de archivos varía, y los enfoques principales son mostrar dos archivos uno al lado del otro o mostrar un solo archivo, con marcas que muestran los cambios de un archivo a otro. En cualquier caso, se puede utilizar la visualización de lado a lado, el plegado de código o el plegado de texto para ocultar las partes sin cambios del archivo, mostrando solo las partes modificadas.
Razonamiento
Las herramientas de comparación se utilizan por varias razones. Cuando se desea comparar archivos binarios, probablemente sea mejor el nivel de bytes. Pero si uno desea comparar archivos de texto o programas de computadora , lo mejor suele ser una comparación visual en paralelo. Esto le da al usuario la oportunidad de decidir qué archivo es el preferido para retener, si los archivos deben fusionarse para crear uno que contenga todas las diferencias, o quizás para mantenerlos como están para referencia posterior, a través de alguna forma 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 importante. La corrupción ocurre sin previo aviso y sin el conocimiento de uno; al menos por lo general hasta que sea demasiado tarde para recuperar las piezas faltantes. Por lo general, la única forma de saber con certeza si un archivo se ha dañado es la próxima vez que se use o se abra. Salvo eso, uno debe usar una herramienta de comparación para al menos reconocer que se ha producido una diferencia. Por lo tanto, todos los programas de copia de seguridad o sincronización de archivos deben incluir la comparación de archivos para que estos programas sean realmente útiles y confiables.
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 cartas IBM 519 podría determinar si una baraja de cartas perforadas era equivalente. En 1957, John Van Gardner desarrolló un sistema para comparar las sumas de verificación de las secciones cargadas de los programas Fortran para depurar problemas de compilación en el IBM 704 . [5]
Ver también
- Comparación de herramientas de comparación de archivos
- Revisión asistida por computadora
- Diferenciación de datos
- Codificación delta
- Comparación de documentos
- Editar distancia
Referencias
- ^ "diff", el archivo de jerga .
- ^ Heckel, Paul (1978), "Una técnica para aislar diferencias entre los archivos" (PDF) , Communications of the ACM , 21 : 264-268, doi : 10.1145 / 359,460.359467 , recuperado 2011-12-04
- ^ Viégas, Fernanda B .; Wattenberg, Martin; Kushal, kushal de Dave (2004), El estudio de cooperación y conflicto entre los autores con visualizaciones de flujo de la historia (PDF) , 6 , Viena:. CHI, pp 575-582 , recuperada 2011-12-01
- ^ 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 .
- ^ John Van Gardner. "Fortran y el Génesis del proyecto Intercept" (PDF) . Consultado el 6 de diciembre de 2011 . Cite journal requiere
|journal=
( ayuda )
enlaces externos
- Comparación de archivos en Curlie