next up previous contents Next:  Test de connectivité internet. Up: Scripts utiles et commandes. Previous:  if conditionnels.   Table des matières  


21.7.3  patch et diff.

Vous désirerez peut-être trouver les différences éventuelles entre deux fichiers, par exemple pour estimer les changements qui ont été introduits dans un fichier appartenant à deux versions. Il y a aussi d'autres cas: lorsqu'une grande quantité de code source a été mise à jour, il est absurde de charger l'arborescence entière des répertoires si seulement quelques changements ont eu lieu. Aussi, ne souhaiterez-vous obtenir que la liste des modifications.
L'utilitaire diff extrait et affiche les lignes qui diffèrent dans deux fichiers. Cette commande peut être utilisée de la manière suivante:

diff -u <ancien_fichier> <nouveau_fichier> 


diff peut également être employée pour extraire les différences entre deux arborescences de répertoires. diff compare récursivement tous les fichiers correspondant:

diff -u -recursive -nouveau_fichier <ancien_repertoire> \  
<nouveau_repertoire> > <correctif>.diff 


Le résultat de cette commande constitue en fait un correctif (patch file) associé à l'arborescence. Ce dernier vous permet de mettre à jour <ancien_repertoire> pour obtenir <nouveau_repertoire>.

Les fichiers correctifs se termineront peut-être par .patch; ils sont très souvent gzipés. Le fichier correctif ainsi extrait peut être appliqué à <ancien_repertoire> de cette manière:

cd <ancien_repertoire> 
patch -p1 -s < <correctif>.diff


Ceci rendra <ancien_repertoire> identique à <nouveau_repertoire>. L'option -p1 extrait le nom du répertoire principal dans le fichier correctif. La présence d'un nom de répertoire principal dans le correctif perturbe souvent la commande patch.


next up previous contents Next:  Test de connectivité internet. Up: Scripts utiles et commandes. Previous:  if conditionnels.   Table des matières  
1-01-2006