patch

Une définition du Jargon Français.
Aller à : Navigation, rechercher

Dr enus.png nom masculin.

1.  [développement]. Ensemble de modifications (ajout, remplacement ou suppression).

Un patch est d'ordinaire destiné à un morceau de texte, souvent du code source, et est destiné à corriger un bug ou à ajouter une fonctionnalité. Toutefois certains s'appliquent à des données, parfois même à du binaire.

Il est utile car remplace par exemple une nouvelle diffusion de la totalité d'un logiciel tout en étant plus concis.

Un hot patch est applicable sans devoir relancer, au préalable ou a posteriori, le système d'exploitation voire l'un des logiciels concernés.

Att.png À ma connaissance, les synonymes colmatage et rustine (attention, marque déposée pour ce dernier) ne s'appliquent qu'à ce premier sens.

Le fait d'établir (créer, calculer) un patch est souvent appelé differ (verbe jargonnesque du premier groupe dérivé de diff) et on l'entend parfois qualifié de contre une version donnée de la source (ce qui est un anglicisme), celui de l'utiliser est dit patcher ou le poser/l'appliquer/l'intégrer voire le merger (anglicisme), cf. sens 4 dans le présent article.

Voir aussi patchset, service pack et fix.

L'utilité d'un add-in est semblable, toutefois son installation ne nécessite pas de redémarrage (voire de recompilation) du programme concerné qui est capable de la prendre en compte dynamiquement, à la volée.


2.  [graphisme]. En imagerie de synthèse, primitive relativement simple, dont un ensemble permet de modéliser un objet très très tordu. Exemple : patchs bicubiques de Bézier pour faire une belle théière.


3.  [son]. Les données grâce auxquelles un synthétiseur produira un son donné.


4.  [commande]. Cette commande née sous Unix applique ce que le diff correspondant produit.

Note: tous deux sont orientés ligne.

Démonstration (liée aux sens 1 et 4)

Sous bash, animé par Linux (ce qui suit vaut sur tout Unix raisonnablement contemporain) :

Création d'un fichier :

$ echo -e 'Bonjour,\nComment vas?\nIci tout va bien.\nSalut!'> toto_version_1.txt

Lecture du contenu du fichier :

$ cat toto_version_1.txt 
Bonjour,
Comment vas?
Ici tout va bien.
Salut!

Autre fichier :

$ echo -e 'Bonjour,\nComment vont?\nIci tout va bien.\n\nSalut!'> toto_version_2.txt

Son contenu :

$ cat toto_version_2.txt 
Bonjour,
Comment vont?
Ici tout va bien.

Salut!

Création d'un diff classique de la version 1 vers la version 2 (on entendra parfois l'anglicisme diff entre la version 1 et 2 ou patch contre la version 1), qu'un humain jugera probablement difficile à comprendre :

$ diff toto_version_1.txt toto_version_2.txt 
2c2
< Comment vas?
---
> Comment vont?
3a4
> 

Production d'un diff dit unifié, plus facile à comprendre et à appliquer :

$ diff -u toto_version_1.txt  toto_version_2.txt 
--- toto_version_1.txt  2007-11-20 17:43:55.000000000 +0100
+++ toto_version_2.txt  2007-11-20 17:44:19.000000000 +0100
@@ -1,4 +1,5 @@
 Bonjour,
-Comment vas?
+Comment vont?
 Ici tout va bien.
+
 Salut!

On y lit les noms des fichiers puis des informations relatives à chaque ligne modifiée (précédée d'un signe '-') et ajoutée ou remplacée (précédée d'un '+')

Les contenus sont-ils différents ?

$ md5sum toto_version_*
2f5041cfdc8537befaa77d8fa0117e1e  toto_version_1.txt
23342e30c89ee66089b5af6d0a5dff76  toto_version_2.txt

Pas de surprise!

Application du diff :

$ diff -u toto_version_1.txt  toto_version_2.txt |patch
patching file toto_version_1.txt

Vérification

$ md5sum toto_version_*
23342e30c89ee66089b5af6d0a5dff76  toto_version_1.txt
23342e30c89ee66089b5af6d0a5dff76  toto_version_2.txt

Victoire ! patch peut employer les quelques lignes produites par diff afin de mettre à jour l'ancienne version du fichier.


5.  [câble]. Tronçon de câble, souvent de la paire torsadée, généralement court et souple, muni d'un connecteur à chaque extrémité.

Ce terme est rare en France.