Ich versuche, eine Datei mit dem Diff-Tool zu patchen. Es treten jedoch Probleme auf. Die Vorgehensweise ist unten aufgeführt.
Ich habe ein Verzeichnis mit dem Namen a erstellt und die Originaldatei darin abgelegt.
a/original_file.c
Jetzt habe ich ein anderes Verzeichnis mit dem Namen b erstellt und dieselbe Datei mit geändertem Inhalt darin abgelegt.
b/original_file.c
Jetzt habe b/original_file.c
ich den Inhalt der Datei aus dem Internet kopiert und in einen Texteditor gestellt.
Nach dem Befehl: diff -Naur a b > patch_file.patch
wird die Datei patch_file.patch
generiert und weist einige unerwünschte Änderungen auf (im Zusammenhang mit dem Einzug).
Zum Beispiel:
return mg_nw (MG_READY_NOY, &rmsg, seqnr,
- sizeof (struct mg_rdy_notify));
+ sizeof (struct mg_rdy_notify));
Jetzt können Sie sehen, dass es Änderungen in Bezug auf die Einrückung gibt, bei denen sizeof (struct mg_rdy_notify))
dieselbe ersetzt wird, sizeof (struct mg_rdy_notify))
aber eine Einrückungsgrundlage, die wir nicht wollen.
diff
hat die Option, Whitespace-Änderungen (-w
) zu ignorieren , ebenso wiepatch
(-l
). Im Allgemeinen ist es jedoch eine schlechte Idee, Leerzeichen zu ignorieren. Daher sollten Sie die Verwendung für Sonderfälle reservieren, in denen jemandes Redakteur etwas Schreckliches getan hat ...quelle