{{tag>bureautique}} ---- ====== Patch : application d'un patch dans un répertoire ====== Patch permet d'appliquer un patch obtenu au moyen d'un diff (svn diff, git diff, ...) Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://patch|patch]]**. =====Utilisation===== ==== Créer un patch entre deux fichiers ==== Pour créer un patch entre deux fichiers, il suffit de taper la commande : diff -u fichier1 fichier2 > mon.patch ==== Créer un patch entre deux répertoires ==== Pour créer un patch entre deux répertoires, il suffit de taper la commande : diff -Naur rep1/ rep2/ > mon.patch ==== Patcher un dossier ==== L'utilisation de l'outil patch se fait en ligne de commande. La syntaxe est la suivante : patch -p0 < mon.patch Ceci appliquera le patch "mon.patch" dans le répertoire courant. -p0 indique que nous prenons les paths du patch en entier. Par exemple : +++ monProjet/test.c va appliquer ce patch dans le sous répertoire monProjet sur le fichier test.c. Si nous avions spécifié -p1 il aurait cherché test.c à la racine de notre répertoire courant. ==== Patcher tous les fichiers indiqués par le patch ==== patch < mon.patch ==== Patcher explicitement un seul fichier ==== patch monfichier.truc < mon.patch ==== Patcher en mode verbeux sans appliquer réellement le patch ==== patch --verbose --dry-run < mon.patch ==== Retour arrière sur un passage de patch ==== patch --reverse < mon.patch ==== Application d'un patch avec conservation des permissions ==== Attention: La commande patch ne preserve pas les permissions, mais les positionne en 644, cela est important notamment lorsqu'on patch un fichier dans /etc/grub.d/ par exemple. Pour préserver les permissions, il faut utiliser l'option **''----backup''** et ensuite faire un chmod **''----reference''**, exemple : cd /etc/grub.d/ && patch --backup -p3 00_header_754921.patch chmod --reference=00_header.orig 00_header ---- //Contributeurs: dufoli//