Ceci est une ancienne révision du document !



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'installer le paquet patch.

ho ho Merci

:-x :-P

HACkE

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

  • patch.1471806108.txt.gz
  • Dernière modification: Le 21/08/2016, 21:01
  • par 41.250.181.96