Questa guida fornisce una panoramica di base per l'applicazione di una patch a un programma o file.
Il comando utilizzato per applicare le patch è il comando patch ma per applicare una patch è necessario utilizzare anche il comando diff per fornire le differenze che devono essere corrette.
Perché dovresti creare una patch
Immagina di avere un file HTML come segue:
Benvenuto in MySite
La sorgente di cui sopra, quando caricata in un browser web, mostrerà le parole "Welcome to MySite".
È comune quando si pianifica la presenza di più versioni dello stesso file. Ad esempio, ci sarebbe una versione che è la versione live corrente, ci sarebbe un'altra versione sul ramo di sviluppo che potrebbe contenere più modifiche, infine, potrebbe esserci un'altra versione su un ramo di rilascio.
Il ramo di rilascio sarebbe la versione utilizzata dagli utenti reali (vale a dire in questo caso i visitatori del sito Web MySite). Diciamo che MySite è alla versione 1.0. Dopo una fase di sviluppo, creerai un ramo di rilascio che sarebbe in questo caso 1.1. Il ramo di sviluppo sarà prima del ramo di rilascio perché potrebbe contenere modifiche che non sono previste per il rilascio nella versione 1,2 ma saranno per la versione 1.1.
Immagina che ci sia un bug per cui MySite dovrebbe essere chiamato YourSite. È possibile accedere a ciascun ramo a turno e apportare modifiche alla versione live, alla versione di sviluppo e alla versione di rilascio di si potrebbe apportare la modifica come aggiornamento rapido in live e quindi applicare la patch ai rami di sviluppo e rilascio.
Un esempio funzionante
Crea un file chiamato myfile.html con il seguente codice in esso:
Benvenuto in MySite
Questo è un esempio funzionante di patch del codice sorgente.
Crea un altro file chiamato myfile_v2.html con il seguente codice in esso:
Benvenuto in YourSite
Questo è un esempio funzionante di patch del codice sorgente.
Il primo file è la pagina Web originale con l'intestazione "Welcome to MySite". Il secondo file è uguale al primo, tranne che MyFile viene rinominato in YourFile nel testo.
Come creare il file diff
Per creare una patch, dobbiamo elaborare le differenze tra myfile.html e myfile_v2.html.
Possiamo farlo con il comando diff come segue:
diff -u myfile.html myfile_v2.html> myfile.patch
Puoi aprire il file myfile.patch nell'editor nano come segue per visualizzarlo: nano myfile.patch
Le linee che sono invariate sono mostrate in blu. Le linee che sono state rimosse sono mostrate in rosso e le linee che sono state aggiunte sono mostrate in verde. Per applicare la patch a myfile.html utilizzare il seguente comando: patch <myfile.patch Questo applicherà le modifiche create usando il comando diff al file originale myfile.html. Se si desidera ripristinare la patch in modo che myfile.html ritorni allo stato originario, utilizzare il seguente comando: patch -R <myfile.patch Il comando patch può essere utilizzato per applicare patch su un'intera struttura di directory. Ci sono strumenti molto migliori del comando patch per creare patch e assicurare un buon controllo del codice sorgente. C'è una ragione per cui così tanti progetti di sviluppo usano GIT per il controllo del codice sorgente. GIT semplifica la creazione di una strategia di ramificazione coerente. Il comando patch è ok per applicare le differenze a uno script bash o qualcosa di semplice, ma si potrebbe facilmente creare una copia di backup dei file che si desidera patch e semplicemente copiare i nuovi file nello stesso posto. Per maggiori informazioni usa il comando man: patch uomo Come applicare la patch usando il comando Patch
Come ripristinare una patch
Sommario