Dateivergleich
Im Computer, Dateivergleich ist die Berechnung und Anzeige der Unterschiede und Ähnlichkeiten zwischen Datenobjekten typischerweise Textdateien wie zum Beispiel Quellcode.
Die Methoden, Implementierungen und Ergebnisse werden typischerweise als a bezeichnet diff,[1] nach dem Unix diff
Dienstprogramm. Die Ausgabe kann in a dargestellt werden grafische Benutzeroberfläche oder als Teil größerer Aufgaben in verwendet Netzwerke, Dateisysteme, oder Revisionskontrolle.
Einige weit verbreitete Dateivergleichsprogramme sind diff, CMP, Filemerge, Winmerge, Unvergleichlich, und Dateivergleich.
Viele Textredakteure und Textverarbeitungen Führen Sie den Dateivergleich durch, um die Änderungen in einem Dokument zu markieren.
Methodentypen
Die meisten Dateivergleichstools finden die längste gemeinsame Subsequenz zwischen zwei Dateien. Alle Daten, die nicht in der längsten gemeinsamen Subsequenz sind, werden als Einfügung oder Löschung dargestellt.
1978 veröffentlichte Paul Heckel einen Algorithmus, der die meisten bewegten Textblöcke identifiziert.[2] Dies wird in der verwendet IBM History Flow Tool.[3] Andere Dateivergleichsprogramme finden Blockbewegungen.[Klarstellung erforderlich]
Einige spezielle Dateivergleichstools finden die Die längste zunehmende Subsequenz zwischen zwei Dateien.[4] Das rsync Protokoll verwendet a Rolling Hash Funktion zum Vergleich von zwei Dateien auf zwei entfernten Computern mit niedrigem Kommunikationsaufwand.
Der Dateivergleich in Textprozessoren befindet sich normalerweise auf der Wortebene, während der Vergleich in den meisten Programmierwerkzeugen auf Zeilenebene liegt. Byte- oder Charakter-Level-Vergleich ist in einigen speziellen Anwendungen nützlich.
Anzeige
Die Anzeige des Dateivergleichs variiert, wobei die Hauptansätze entweder zwei Dateien nebeneinander angezeigt oder eine einzelne Datei angezeigt werden, wobei Markup die Änderungen von einer Datei zur anderen anzeigt. In beiden Fällen, insbesondere nebeneinander zu sehen, Codefaltung oder Textfaltung Kann verwendet werden, um unveränderte Teile der Datei zu verbergen und nur die geänderten Teile anzuzeigen.
Argumentation
Vergleichsinstrumente werden aus verschiedenen Gründen verwendet. Wenn man Binärdateien vergleichen möchte, ist Byte-Level wahrscheinlich am besten. Aber wenn man vergleichen möchte Textdateien oder ComputerprogrammeEin Nebenseitigkeitsvergleich ist normalerweise am besten. Dies gibt dem Benutzer die Möglichkeit, zu entscheiden, welche Datei die bevorzugte Aufbewahrung ist, wenn die Dateien zusammengeführt werden sollten, um eine zu erstellen, die alle Unterschiede enthält, oder um sie beide als später in einer Form von zu referenzieren. " Versioning "Steuerung.
Dateivergleich ist ein wichtiger und wahrscheinlicher integraler Teil von Dateisynchronisation und Backup. In Backup -Methoden das Problem von Datenkorruption ist wichtig. Korruption tritt ohne Vorwarnung und ohne Wissen auf; Zumindest normalerweise bis zu spät, um die fehlenden Teile wiederherzustellen. Normalerweise ist der einzige Weg, um sicher zu wissen, ob eine Datei beschädigt wurde, wenn sie als nächstes verwendet oder geöffnet wird. Abgesehen davon muss man ein Vergleichsinstrument verwenden, um zumindest zu erkennen, dass ein Unterschied aufgetreten ist. Daher müssen alle Dateisynchronisierungs- oder Sicherungsprogramme Dateivergleich enthalten, wenn diese Programme tatsächlich nützlich und vertrauenswürdig sein sollen.
Historische Verwendungen
Vor dem Dateivergleich existierten Maschinen, um Magnetbänder oder Lochkarten zu vergleichen. Das IBM 519 Kartenreproduktion könnte bestimmen, ob ein Deck von geschlagene Karten waren äquivalent. 1957 entwickelte John Van Gardner ein System zum Vergleichen der Überprüfen Sie die Summen von geladenen Abschnitten von Forran Programme an debuggen Kompilierungsprobleme auf der IBM 704.[5]
Siehe auch
- Vergleich von Dateivergleichstools
- Computergestützte Überprüfung
- Data differencing
- Delta -Codierung
- Dokumentvergleich
- Entfernung bearbeiten
Verweise
- ^ "diff", die Jargon -Datei.
- ^ Heckel, Paul (1978), "Eine Technik zum Isolieren von Unterschieden zwischen Dateien" (PDF), Kommunikation der ACM, 21 (4): 264–268, doi:10.1145/359460.359467, S2CID 207683976, abgerufen 2011-12-04
- ^ Viégas, Fernanda B.; Witttenberg, Martin; Kushal, Kushal Dave (2004), Untersuchung der Zusammenarbeit und Konflikte zwischen Autoren mit Geschichtsflussvisualisierungen (PDF), vol. 6, Wien: Chi, S. 575–582, abgerufen 2011-12-01
- ^ Liwei Ren; Jinsheng Gu; Luosheng Peng (18. April 2006). "Algorithmen für die Ausrichtung von Software-Binärdateien auf Blockebene". Google -Patente. USPTO. Abgerufen 10. Mai 2019.
- ^ John Van Gardner. "Forran und die Entstehung des Projektabschnitts" (PDF). Abgerufen 2011-12-06.
Externe Links
- Dateivergleich bei Curlie