Sommaire |
La commande patch permet d'appliquer un patch à un fichier. Elle est très pratique car elle permet d'appliquer une série de modifications à partir d'un fichier patch, sans avoir à relivrer l'ensemble du fichier modifié.
Soit le fichier "fichier-test" suivant :
01. arbre 02. éléphant 03. gomme 04. chateau 05. ecriture 06. ours 07. serpent 08. /* 09. pantalon 10. manger 11. boire 12. */ 13. 14. abris 15. cryaon 16. test 17. livre 18. page 19. crayon 20. lumiere 21. lampe
Nous allons écrire un patch qui va corriger la ligne 15, en remplaçant "cryaon" par "crayon"
Le patch (fichier-test.patch) est le suivant :
01. --- fichier-test 2010-03-01 07:52:16.000000000 +0100 02. +++ fichier-test-2 2010-03-01 07:55:00.000000000 +0100 03. @@ -12,6 +12,6 @@ 04. */ 05. 06. abris 07. -cryaon 08. +crayon 09. test 10. livre
Ce fichier est composé de plusieurs blocs, découpés comme suit :
Pour appliquer le patch, il nous suffit d'entrer la commande suivante :
$ patch -p0 < fichier-test.patch patching file fichier-test Hunk #1 succeeded at 12 with fuzz 1.
Une fois le patch appliqué, nous constatons la création d'un fichier de sauvegarde (fichier-test.orig).
La commande diff permet de créer automatiquement un patch:
diff -u fichier1 fichier2
patch -p0 < patch