patch

Une définition du Jargon Français.

Image:Dr_enus.png nom masculin.

1.  [débogage]. Ensemble de modifications (ajouts ou remplacements).

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

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.

Image: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/appliquer, cf. sens 4 dans le présent article.

Voir aussi service pack et fix.

L'utilité d'un add-in est semblable et son installation ne nécessite pas de modification du programme concerné.


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. Voir aussi Utah Teapot.


3.  [son]. Un son produit par un synthétiseur.


4.  [commande]. Cette commande applique ce que diff produit.

Démonstration (liée au sens 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, 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 ainsi que 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.

Récupérée de « http://jargonf.org/wiki/patch »