diff
hat eine Option zum Ignorieren von Whitespace-Änderungen (-w
), dasselbe für patch
(-l
). Im Allgemeinen ist es jedoch eine schlechte Idee, Leerzeichen zu ignorieren, also sollten Sie ihre Verwendung für Sonderfälle reservieren, wenn jemandes Redakteur etwas Schreckliches getan hat...
diff
hat mehr als eine Option in Bezug auf Leerzeichen. Allerdings ist man für Patches weniger brauchbar. Die Handbuchseite gibt einen obskuren Hinweis, der sich sowohl auf GNU:
-B, --ignore-blank-lines
ignore changes where lines are all blank
-b, --ignore-space-change
ignore changes in the amount of white space
-w, --ignore-all-space
ignore all white space
und FreeBSD
-b Ignore changes in amount of white space.
-B Ignore changes that just insert or delete blank lines.
-w Ignore white space when comparing lines.
Normalerweise verwendet man -b
, da dadurch signifikante Änderungen weniger wahrscheinlich übersehen werden. Wenn Sie nur den Einzug geändert haben, dann beide -b
und -w
geben das gleiche Ergebnis. Wenn Sie andererseits Leerzeichen eingefügt haben, wo keine vorhanden waren, oder vorhandene Leerzeichen gelöscht haben (wobei keine vorhanden waren), könnte dies eine Änderung in Ihrem Programm sein. Hier ist ein Beispiel:
$ diff foo.c foo2.c
4c4
< setlocale(LC_ALL, "");
---
> setlocale(LC_ALL, " ");
6,7c6,7
< printw("\U0001F0A1");
< getch();
---
> printw ("\U0001F0A1");
> getch(); /* comment */
$ diff -b foo.c foo2.c
4c4
< setlocale(LC_ALL, "");
---
> setlocale(LC_ALL, " ");
6,7c6,7
< printw("\U0001F0A1");
< getch();
---
> printw ("\U0001F0A1");
> getch(); /* comment */
$ diff -w foo.c foo2.c
7c7
< getch();
---
> getch(); /* comment */
In diesem Fall die -w
Mit der Option können Sie die Änderung des setlocale
ignorieren Parameter (vielleicht nicht beabsichtigt).
POSIX diff hat übrigens nur den -b
Option.
Für patch
, POSIX dokumentiert den -l
Möglichkeit:
-l
(Der Buchstabe ell .) Verursachen Sie eine beliebige Folge von <blank>
Zeichen im Differenzskript so, dass sie mit einer beliebigen Folge von <blank>
übereinstimmen Zeichen in der Eingabedatei. Andere Zeichen müssen exakt abgeglichen werden.