Quelques tips pour bien utiliser la commande patch.
La commande diff
Cette commande permet de trouver les differences entre 2 fichiers. Elle vous retourne la ligne du fichier original et la ligne modifiée. Elle va nous permettre de créer le patch que nous pourrons ensuite appliquer. Il existe plusieurs types de patch. Celui qui est le plus répandu est le patch unifié car il apporte de la souplesse dans son application en permettant une certaine variation du fichier à patcher.
La commande patch
La commande patch va prendre en entré le resultat de la commande diff et va appliquer les changements sur le fichier désigné. Le fait d’avoir dans le patch la version originale et la version modifiée permet d’éviter de patcher un fichier qui n’est pas le bon, ou même de patcher un fichier déjà à jour.
Exemple :
diff -aburN --exclude=CVS* repertoire/reference/ repertoire/modifie/ > patch.diff
Cette commande crée un patch unifié. Interêt des options passées :
- -a : traiter tout les fichiers comme du texte
- -b : permet de ne pas tenir compte des différences sur les espaces
- -u : faire un patch unifié
- -r : parcourrir les sous répertoires
- -N : permet de gérer les fichiers nouveaux
- —exclude=CVS : permet d’exclure des fichiers ou répertoire de l’analyse.
Le patch ainsi fabriqué contient des éléments qui vont permettre à la commande patch de retrouver les fichiers à modifier à travers l’arborescense, puis de trouver les bonnes lignes, même si celles-ci ont légèrement été déplacées.
patch -p 1 < patch.diff
L’option -p N permet d’adapter l’aborescence d’origine du patch à l’arborescence que l’on est en train de traiter.