WinMerge - Zeilenunterschiede anders bestimmen

Olunixus

Commodore
Registriert
Dez. 2009
Beiträge
4.760
Hallo zusammen,
ich verwende regelmäßig WinMerge um G-Code-Dateien miteinander zu vergleichen. Den meisten Zeilen ist eine Satznummer vorangestellt die in 10er-Schritten hochzählt. Wird nach einem Einfügen von einer Zeile die Satznummer neu generiert ändert diese sich in allen darauf folgenden Zeilen. Kann man diese Satznummer in WinMerge bei der Entscheidung welche Zeilen gleich / unterschiedlich sind anders berücksichtigen? Ich habe schon einige Einstellungen durchprobiert, aber bisher noch nicht die richtige für mich gefunden. Hier ein Beispiel:

datei1
Code:
N1500 F=SPEED[11] V2=HOME_V2
N1510 F=SPEED[0] ACC[U2]=R12 U2=POS_U2 W2=POS_W2+OFFSET[4]
N1520 F=SPEED[11] W2=HOME_W2
N1530 F=SPEED[0] ACC[A2]=R12 A2=POS_U2 A2=POS_A2+OFFSET[3]
N1540 F=SPEED[11] V2=HOME_V2
N1550 F=SPEED[0] ACC[U2]=R12 U2=POS_U2 W2=POS_W2+OFFSET[4]

datei2
Code:
N1500 F=SPEED[11] V2=HOME_V2
N1510 F=SPEED[0] ACC[U2]=R12 U2=POS_U2 W2=POS_W2+OFFSET[4]
N1520 F=SPEED[11] W2=HOME_W2
N1530 F=SPEED[11] huibuh
N1540 F=SPEED[0] ACC[A2]=R12 A2=POS_U2 A2=POS_A2+OFFSET[3]
N1550 F=SPEED[11] V2=HOME_V2
N1560 F=SPEED[0] ACC[U2]=R12 U2=POS_U2 W2=POS_W2+OFFSET[4]

Istzustand:
2021_05_07-17_59_51-WinMerge - [datei1.txt - datei2.txt].png

Unterschied wird erkannt, allerdings mit dem Zeilenumbruch meiner Meinung nach falsch interpretiert.

Sollzustand (manuell erzwungen, indem ich einen Synchronisationspunkt in die Zeile nach der Änderung gesetzt habe):
2021_05_07-18_00_14-WinMerge - [datei1.txt - datei2.txt].png

die "huibuh"-Zeile wird als neu erkannt, und die anderen Zeilen als "bis auf die Satznummer identisch" angezeigt.

Wenn ich die Satznummern der folgenden Zeilen nicht anpasse funktioniert es wie erwartet ohne manuellen Eingriff:
2021_05_07-18_10_08-WinMerge - [datei1.txt - datei2.txt].png

Da hier die Satznummer auch identisch ist wird korrekterweise nur die eingefügte Zeile als Unterschied markiert.

Ich hätte gerne den Sollzustand aus dem Screenshot, ohne manuell die Synchronisationspunkte setzen zu müssen. Man kann zwar mit Regex Filter definieren, aber ich möchte ja nicht die ganze Zeile ignorieren. Mir würde es reichen, dass die Satznummer ( N1234 ) als Entscheidungskriterium nur dann relevant wird, wenn der restliche Zeileninhalt identisch ist. Aber komplett ignoriert werden darf die Satznummer auch nicht, weil ich trotzdem auf den Unterschied in der Satznummer aufmerksam gemacht werden möchte...

Vielen Dank für eure Hilfe
Olunixus
 
Olunixus schrieb:
Mir würde es reichen, dass die Satznummer ( N1234 ) als Entscheidungskriterium nur dann relevant wird, wenn der restliche Zeileninhalt identisch ist.

Auf die Gefahr hin dich misszuverstehen: Ist das nicht schon das ursprüngliche Verhalten?

Was du machen kannst, ist nach Handbuch "Using line filters" vorzugehen um die Instruktionsnummer komplett zu ignorieren.
Eigentlich gibt es diese 10er-Sprünge gerade deshalb um unter anderem auch Diffs elegant kompatibel machen zu können, indem man den freigelassenen numerischen Zwischenraum nutzt.
 
Zuletzt bearbeitet:
TriggerThumb87 schrieb:
Ist das nicht schon das ursprüngliche Verhalten?
Wie kommst du darauf? Kann dir da jetzt nicht folgen.

TriggerThumb87 schrieb:
Instruktionsnummer komplett zu ignorieren.
Hab ich schon - aber genau der Teil mit "komplett ignorieren" passt mir nicht. Dann habe ich ja genau den Fall, dass mir die Datei als identisch angezeigt wird, obwohl die Satznummern unterschiedlich sind.

Mein Problem mit den Nummern ist, dass wenn jmd. einen ganzen Block copy&pastet und die Nummern dann via Tool neu durchgezählt, werden die nachgelagerten Nummern ja auch verschoben. Der Vergleich mit der Originaldatei geht mit WinMerge schief, weil der jetzt nach den Nummern vergleicht, anstatt zu merken dass ein komplett neuer Absatz Code hinter den Nummern steckt, und der Bestand halt ein paar Zeilen weiter unten (nur mit anderen Nummern) noch genau gleich wie vorher ist.
 
Zurück
Oben