Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
patch [Le 26/06/2014, 15:24] – [Patcher des fichiers] 207.45.249.157patch [Le 10/01/2020, 22:16] (Version actuelle) – [Patcher explicitement un seul fichier] 93.5.118.99
Ligne 1: Ligne 1:
 +{{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.patchv<note warning>warning</note>
 +
 +==== 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  ==== 
 +<note warning>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.
 +</note>
 +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
 +  
 +===== Voir aussi =====
 +  * [[https://wiki.debian-fr.xyz/Utiliser_diff_et_patch|Explications plus avancées]] de diff et patch
 +
 +----
 +//Contributeurs: dufoli//