Frage

Ich habe eine Reihe von Binärkonfigurationsdateien mit jeweils drei Versionen-ein Original und zwei unterschiedlich modifizierte Versionen jeder Datei. Ich muss in der Lage sein, die Unterschiede zwischen den beiden Versionen und dem Original gleichzeitig zu erkennen.

Was ich brauche, ist ein Drei-Wege-Diff-Tool für Binärdateien. Durch eine ziemlich anstrengende Google -Suche kam ich schließlich auf a Bildschirmfoto einer Anwendung, die genau das tut, was ich brauche - leider erwähnt der Forum -Beitrag, der das Bild enthält, nicht, welche Anwendung sie verwenden: sie verwenden:

http://www.xboxhacker.org/index.php?topic=15032.0

Kann mich jemand in Richtung einer (Windows) -Anwendung verweisen, die einen Binär-SFE-Vergleich (HEX) von drei Binärdateien bietet?

War es hilfreich?

Lösung

Der Screenshot stammt aus Araxis verschmelzen. Ihre Pro Edition (270 US-Dollar) unterstützt 3-Wege-Vergleiche.

Andere Tipps

VIM verfügt über ein integriertes Diff-Tool, mit dem eine willkürliche Anzahl von Dateien verglichen werden kann. Es läuft auch unter Windows. Sie können es finden bei http://vim.org.

Die Standardinstallation von VIM für Windows umfasst xxd, Sie können Binärdateien als Text sehen:

Also zum Beispiel, wenn Sie versuchen:

xxd xxd.exe

Du wirst kriegen:

0000000: 4d5a 9000 0300 0000 0400 0000 ffff 0000  MZ..............
0000010: b800 0000 0000 0000 4000 0000 0000 0000  ........@.......
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 d800 0000  ................
0000040: 0e1f ba0e 00b4 09cd 21b8 014c cd21 5468  ........!..L.!Th
0000050: 6973 2070 726f 6772 616d 2063 616e 6e6f  is program canno
0000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
0000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
0000080: 6ba7 bec3 2fc6 d090 2fc6 d090 2fc6 d090  k.../.../.../...

etc...

Sie können also verwenden xxd So lassen Sie Ihre Binärdateien in Textdateien ein:

xxd orig > orig.txt
xxd mod1 > mod1.txt 
xxd mod2 > mod2.txt

Und dann vim im Diff -Modus ausführen:

vim -d orig mod1 mod2

Und das gibt Ihnen so etwas:

example of 3-way vimdiff

(Dieser Screenshot wurde von entnommen hier und ist nicht mehr als ein Beispiel dafür, wie ein 3-Wege-Diff in VIM aussehen wird)

Alle diese Tools sind in Windows verfügbar, daher sollten sie Ihr Problem lösen.

Bearbeiten:

Nachdem Sie die Ergebnisse von zusammengeführt haben xxd, Sie können den Hex -Dump in eine binäre Datei konvertieren xxd -r:

xxd -r merged_xxd_file merged_binary_file

Weitere Details und Optionen sehen Sie in xxdManpage

Sie könnten einen Blick darauf werfen Ecmerge (Ein Tool, an dem ich arbeite), hat es einen 2- und 3-Wege-Diff von Binärdateien (Hex + ASCII). Es gibt keine Zusammenführungsfunktion. Sie können sich aus dem veränderten Bereich in den Bereich wechseln und langen Zonen (lange Einfügungen, Änderungen oder unverändert) leicht wechseln.

Die neueste Version von Unvergleichlich scheint zu unterstützen 3-Wege-Diff und -vererne. Darüber hinaus ist es Feature -Liste Es sagt, dass es den Vergleich von Binärdateien unterstützt.

Beachten Sie, dass dies keine kostenlose Software ist :-)

Ich wurde kürzlich vorgestellt mit p4merge, die anscheinend auch Binärdateien zu unterstützen scheint.

Es dauert 3 Dateien als Eingabe: das ursprüngliche und zwei Derivate. Es zeigt sie nebeneinander mit einem vierten Fenster, in dem die fusionierte Datei mit Bearbeitungsfunktionen und Konfliktlösung angezeigt wird.

Ich habe dies gerade verwendet, um zwei Zweige einer großen Codebasis zusammenzuführen, und es war äußerst bequem.

p4merge example

Jetzt habe ich es nicht verwendet, um Binärdateien zusammenzuführen, aber es unterstützt differenzierende Bilder. Ich würde mich also überraschen, wenn Binärdateien nicht unterstützt würden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top