Umgekehrter Patch und Sicherungsdatei ist identisch mit der Ausgabedatei oder fehlt?

251
bartoli

Ich habe ein System, das umgekehrte Patches (diff mit umgekehrten Operanden) übernimmt und diese im umgekehrten Modus anwendet. Patch wird mit aufgerufen --backup, um die Originaldatei zu behalten. Ich habe jedoch festgestellt, dass es zwischen der Datei nach dem umgekehrten Patch und der result.origDatei keinen Unterschied gibt .

Anwendungsfall, wenn das nicht klar ist:
Ich führe einige Tests aus und vergleiche ihre Ausgabe. Tests haben eine Referenzausgabe in einer refDatei.
Wenn ein Test mit Ausgabe in ausgeführt wird result, diff ref resultwird aufgerufen, um zu sehen, was geändert wurde.
Wenn ich diesen Unterschied in der Testsuite "ignorieren" möchte, kann ich die Ausgabe dieses Unterschieds in eine Patch-Datei einfügen. Es wird also der erwartete Outpout vor dem Diff des nächsten Testlaufs
konvertiert. Wenn ich also das Ergebnis in Ref mit diesem Patch --reversekonvertieren möchte, muss ich Patch mit verwenden ).
Der Befehl sieht so auspatch -p0 result --backup -R -i some.patch
Und die .orig, die während dieses Patches zu -b führt, scheint identisch zu der gepatchten Ausgabe zu sein. Dies ist mit einem Patch 2.7.1 unter Linux. Auf einem Patch in Version 2.7.4 auf cygwin scheint keine orig-Datei überhaupt zu generiert, wenn -R

Was ist das erwartete Verhalten von patch --backup --reverse?
Wenn ich das ursprüngliche Ergebnis haben möchte, aber nur beim Patchen, scheinen meine Lösungen entweder eine Kopie vor dem Patchen aufzubewahren, nur für den Fall, oder das Ergebnis im nicht umgekehrten Modus erneut zu patchen.
Was ich mir gewünscht hätte, ist, dass der Patch weiß, welche Datei am Ende geändert wird, also behält er die Sicherung dieser. Der Patch scheint den Inhalt der Quelldatei im Patch zu übernehmen, nicht die Datei, die gepatcht wird. Oder generieren Sie keine orig-Datei je nach Version.

Nehmen Sie in Ihren Antworten an, dass Sie die Patch-Richtung nicht ändern möchten, um die Patches auf der Grundlage der Unterschiede für nicht zu technikfreundliche Benutzer zu erstellen (dies ist nicht meine Frage).

0

0 Antworten auf die Frage