GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare una patch ignorando le differenze di indentazione nel codice?

diff ha un'opzione per ignorare le modifiche agli spazi bianchi (-w ), lo stesso per patch (-l ). In generale, è una cattiva idea ignorare gli spazi bianchi, quindi dovresti riservarne l'uso a casi speciali, quando l'editore di qualcuno ha fatto qualcosa di orribile...


diff ha più di un'opzione relativa agli spazi bianchi. Tuttavia, uno è meno utile per le patch. La pagina di manuale fornisce un suggerimento oscuro, riferendosi sia a 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

e 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.

Di solito si usa -b , perché è meno probabile che trascuri cambiamenti significativi. Se hai cambiato solo il rientro, allora entrambi -b e -w dare lo stesso risultato. D'altra parte, se hai inserito spazi dove non ce n'erano, o hai cancellato spazi esistenti (non lasciandone nessuno), questo potrebbe essere un cambiamento nel tuo programma. Ecco un esempio:

$ 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 questo caso, -w L'opzione ti consente di ignorare la modifica al setlocale parametro (forse non quello previsto).

POSIX diff, tra l'altro, ha solo -b opzione.

Per patch , POSIX documenta il -l opzione:

-l
(La lettera ell .) Causa qualsiasi sequenza di <blank> caratteri nello script di differenza per corrispondere a qualsiasi sequenza di <blank> caratteri nel file di input. Gli altri caratteri devono corrispondere esattamente.


Linux
  1. Come creare un alias e utilizzare il comando alias in Linux

  2. Come installare l'editor di codice parentesi su Ubuntu 20.04

  3. Linux:come creare una patch ignorando le differenze di indentazione nel codice?

  4. Come ignorare alcune differenze nel comando diff?

  5. Come posso eseguire il codice PHP dalla riga di comando?

Come installare l'editor di codice parentesi su Ubuntu 20.04

Come creare e configurare VirtualHost sul server OpenLiteSpeed

Come creare una finestra di messaggio dalla riga di comando?

Come creare lanciatori sul desktop?

Come creare un account e-mail dal cPanel?

Come creare un modello di progetto nello strumento di gestione del progetto ONLYOFFICE