Acest ghid oferă o imagine de ansamblu de bază pentru aplicarea unui patch la un program sau la un fișier.
Comanda utilizată pentru aplicarea patch-urilor este comanda patch-ului, dar pentru a aplica un patch, comanda diff trebuie de asemenea folosită pentru a furniza diferențele care trebuie să fie patch-uri.
De ce ați crea un patch
Imaginați-vă că ați avut un fișier HTML după cum urmează:
Bine ati venit la MySite
Sursa de mai sus, atunci când este încărcată într-un browser web, va afișa cuvintele "Bine ați venit la MySite".
Este obișnuită atunci când programați acolo că există mai multe versiuni ale aceluiași fișier. De exemplu, ar exista o versiune care este versiunea curentă live, ar exista o altă versiune pe ramura de dezvoltare care poate conține mai multe modificări, în cele din urmă ar putea exista o altă versiune pe o ramură de lansare.
Ramura de lansare ar fi versiunea utilizată de utilizatorii reali (adică în acest caz vizitatorii site-ului MySite). Să spunem că MySite este la versiunea 1.0. După o fază de dezvoltare, veți crea o ramură de lansare care ar fi în acest caz 1.1. Sucursala de dezvoltare va fi înaintea ramurii de lansare, deoarece poate conține modificări care nu sunt datorate pentru lansare în versiunea 1.2, dar vor fi pentru versiunea 1.1.
Imaginați-vă că a existat o eroare în care MySite ar trebui să fie numită YourSite. Ai putea merge la fiecare ramură și transforma versiunea live, versiunea de dezvoltare și versiunea de lansare ai putea face schimbarea ca o remediere rapidă în direct și apoi aplicați patch-ul pentru dezvoltarea și eliberarea ramurilor.
Un exemplu lucrat
Creați un fișier numit myfile.html cu următorul cod în el:
Bine ati venit la MySite
Acesta este un exemplu lucrat de codificare sursă.
Creați un alt fișier numit myfile_v2.html cu următorul cod în el:
Bine ați venit la YourSite
Acesta este un exemplu lucrat de codificare sursă.
Primul fișier este pagina web originală cu titlul "Bine ați venit la MySite". Al doilea fișier este același cu primul fișier, cu excepția faptului că MyFile este redenumit în textul YourFile.
Cum se creează fișierul Diff
Pentru a crea un patch, trebuie să analizăm diferențele dintre myfile.html și myfile_v2.html.
Putem face acest lucru cu comanda dif, după cum urmează:
diff -u myfile.html myfile_v2.html> myfile.patch
Puteți deschide fișierul myfile.patch în editorul nano după cum urmează pentru ao vizualiza: nano myfile.patch
Liniile neschimbate sunt afișate în albastru. Liniile care au fost eliminate sunt afișate în roșu, iar liniile care au fost adăugate sunt afișate în verde. Pentru a aplica patch-ul la myfile.html utilizați următoarea comandă: patch <myfile.patch Aceasta va aplica modificările create folosind comanda diff în fișierul original myfile.html. Dacă doriți să reveniți la patch-uri astfel încât myfile.html să revină la modul în care a fost inițial, utilizați următoarea comandă: patch-R <myfile.patch Comanda patch-urilor poate fi folosită pentru a aplica patch-uri pe o structură de directoare întregă. Există instrumente mult mai bune decât comanda de patch-uri pentru crearea de patch-uri și asigurarea unui bun control al sursei. Există un motiv pentru care atât de multe proiecte de dezvoltare folosesc GIT pentru controlul surselor. GIT facilitează crearea unei strategii consecvente de ramificare. Comanda patch-ului este ok pentru aplicarea diferențelor la un script bash sau ceva simplu, dar puteți crea la fel de ușor o copie de siguranță a fișierelor pe care doriți să le patchați și pur și simplu copiați fișierele noi în același loc. Pentru mai multe informații, utilizați comanda om: om patch Cum să aplicați patch-uri folosind comanda de patch-uri
Cum să reveniți la un patch
rezumat