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édentes Révision précédente
Prochaine révision
Révision précédente
patch [Le 01/11/2009, 20:47]
213.95.41.13
patch [Le 11/09/2022, 11:41] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
 {{tag>​bureautique}} {{tag>​bureautique}}
- 
 ---- ----
  
-====== Patch: application d'un patch dans un répertoire ======+====== 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,...)+Patch permet d'​appliquer un patch obtenu au moyen d'un diff (svn diff, git diff, ...)
  
-=====Installation===== +Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>patch|patch]]**.
- +
-Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt://patch|patch]]**.+
  
 =====Utilisation===== =====Utilisation=====
  
-L'​utilisation de l'​outil patch se fait en ligne de commande. La syntax ​est la suivante:+==== 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
  
-''​patch -p0 < mon.patch''​ 
  
 Ceci appliquera le patch "​mon.patch"​ dans le répertoire courant. Ceci appliquera le patch "​mon.patch"​ dans le répertoire courant.
  
 -p0 indique que nous prenons les paths du patch en entier. -p0 indique que nous prenons les paths du patch en entier.
-par exemple+Par exemple ​:
 +++ monProjet/​test.c +++ monProjet/​test.c
 va appliquer ce patch dans le sous répertoire monProjet sur le fichier 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. 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// //​Contributeurs:​ dufoli//
  • patch.1257104836.txt.gz
  • Dernière modification: Le 18/04/2011, 14:52
  • (modification externe)