Patch permet d'appliquer un patch obtenu au moyen d'un diff (svn diff, git diff, …)
Il suffit d'installer le paquet patch.
Pour créer un patch entre deux fichiers, il suffit de taper la commande :
diff -u fichier1 fichier2 > mon.patch
Pour créer un patch entre deux répertoires, il suffit de taper la commande :
diff -Naur rep1/ rep2/ > mon.patch
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.
patch < mon.patch
patch monfichier.truc < mon.patchv<note warning>warning</note>
patch --verbose --dry-run < mon.patch
patch --reverse < mon.patch
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