Scroll to navigation

GENDIFF(1) Manuel de l'utilisateur Linux GENDIFF(1)

NOM

gendiff - Utilitaire qui facilite la création de patch valides

SYNOPSIS

gendiff <répertoire> <extension-diff>

DESCRIPTION

gendiff est script très simple qui facilite la création d'un patch depuis une arborescence. Il prend comme seuls arguments le nom d'un répertoire et l'extension des sauvegardes des fichiers originaux (« extension-diff »). L'extension doit être une séquence unique de caractères ajoutés à la fin du nom des fichiers originaux intacts. Le résultat de gendiff est un fichier diff (« patch ») qui peut être appliquée par le programme patch pour ré-appliquer les changements sur les fichiers originaux.

L'enchaînement usuel des évènements pour créer un patch est de créer deux répertoires identiques, réaliser les changements voulus dans l'un, et ensuite utiliser l'utilitaire diff pour obtenir la liste des changements entre les deux répertoires. L'utilisation de gendiff élimine la nécessité de conserver une copie complète non modifiée du répertoire. En effet, seuls les fichiers modifiés doivent être préalablement sauvegardés (exemple : cp main.c{,.orig}).

Avant d'éditer un fichier, il faut le copier en ajoutant à son nom l'extension choisie (extension-diff). I.e. si l'on veut modifier un_fichier.cpp et si l'on a choisi l'extension « fix », on le copie en un_fichier.cpp.fix avant de l'éditer. Il est alors possible d'éditer le fichier originel (un_fichier.cpp).

Après avoir effectué les modifications souhaitées sur les fichiers de son choix, il suffit de revenir dans le répertoire parent du répertoire modifié et de taper :
$ gendiff un_répertoire .fix > mes_changements-fix.patch

Dans la très grande majorité des cas, la sortie standard de gendiff sera redirigée dans un fichier (comme dans l'exemple ci-dessus) à moins que l'on préfère observer directement le résultat dans la console.

NOTES DU TRADUCTEUR

  • L'extension patch n'est pas obligatoire : l'extension diff est également couramment utilisée pour les fichiers diff.

  • Il n'est pas obligatoire de revenir dans le répertoire parent pour générer le patch ; il suffit de taper directement
    $ gendiff . .fix > mes_changements-fix.patch

    Il faut seulement se souvenir que le fichier diff ne pourra s'appliquer qu'en passant l'option -p0 à patch (l'option -p1 étant implicite).

VOIR AUSSI

diff(1), patch(1)

AUTEUR

Marc Ewing <marc@redhat.com>

TRADUCTEUR

Thierry Vignaud <tvignaud@mandrakesoft.com>, 2002

10 janvier 2000 Linux