On m'a confié la mission d'introduire la notion de patch à un auditoire
qui débute en programmation et qui ne comprend rien à l'administration
système.
Je n'ai jamais patché volontairement un programme. Si je l'ai fait c'est
un script qui l'a fait à ma place (les gestionnaires de packages des
distributions pour lesquelles je fabrique des packages).
Je n'ai pas refusé parceque c'est une opportunité pour moi de me forcer
à aquérir ce savoir qui me manque.
Il y a cependant quelques questions... Les patches distribués sont
souvent avec une extension diff ou patch. Dois-je en déduire que les
patch sont distribués sous plusieurs "formats"? _un peu_ comme il existe
des gzips et des bzips?
Mon plus grand souci est au niveau du positionnement du répertoire à
partir duquel on génère le "fichier différentiel" et aussi de celui à
partir duquel on lance le patchage. Y a t il une attitude standard à
adopter? des options de patches communément utilisées?
Auriez-vous dans vos bookmarks un bon tutoriel qui traite de la chose, ce
qui me permettrait de ne pas réinventer la roue mais éventuellement
d'améliorer (si besoin est) celui qui existe déjà?
J'ai déjà un set de documents, mais si vous en avez un que vous trouvez
exceptionnel dans vos bookmarks, je suis interessé.
Merci beaucoup.
--
Miroir de logiciels libres http://www.etud-orleans.fr
Développement de logiciels libres http://aspo.rktmb.org/activites/developpement
Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Bourguignon
"Rakotomandimby (R12y) Mihamina" writes:
Bonjour,
On m'a confié la mission d'introduire la notion de patch à un auditoire qui débute en programmation et qui ne comprend rien à l'administration système.
Je n'ai jamais patché volontairement un programme. Si je l'ai fait c'est un script qui l'a fait à ma place (les gestionnaires de packages des distributions pour lesquelles je fabrique des packages).
Je n'ai pas refusé parceque c'est une opportunité pour moi de me forcer à aquérir ce savoir qui me manque.
Il y a cependant quelques questions... Les patches distribués sont souvent avec une extension diff ou patch. Dois-je en déduire que les patch sont distribués sous plusieurs "formats"? _un peu_ comme il existe des gzips et des bzips?
En effet, on peut utiliser plusieurs formats de sortie de diff, mais le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
Mon plus grand souci est au niveau du positionnement du répertoire à partir duquel on génère le "fichier différentiel" et aussi de celui à partir duquel on lance le patchage. Y a t il une attitude standard à adopter? des options de patches communément utilisées?
Non, mais comme pour les tar, je préfère le faire pour tout le répertoire, et utiliser patch -p1.
Auriez-vous dans vos bookmarks un bon tutoriel qui traite de la chose, ce qui me permettrait de ne pas réinventer la roue mais éventuellement d'améliorer (si besoin est) celui qui existe déjà?
Oui:
cp -r src src.original cd src ; emacs * ; cd .. diff -Naur src.original src | gzip > modifs.patch.gz
J'ai déjà un set de documents, mais si vous en avez un que vous trouvez exceptionnel dans vos bookmarks, je suis interessé.
Merci beaucoup.
Petit anecdote historique. Le mot "patch" nomme originellement les bouts de cables utilisés dans les premiers ordinateurs où les programmes étaient litéralement _cablés_ sur des panneaux amovibles: on changeait de programme en changeant de panneau de programmation dans le tabulateur. Quand il y avait une bogue dans ces "programmes", on ajoutait ou en enlevait un cable, un patch pour le modifier en espérant le corriger...
On m'a confié la mission d'introduire la notion de patch à un auditoire
qui débute en programmation et qui ne comprend rien à l'administration
système.
Je n'ai jamais patché volontairement un programme. Si je l'ai fait c'est
un script qui l'a fait à ma place (les gestionnaires de packages des
distributions pour lesquelles je fabrique des packages).
Je n'ai pas refusé parceque c'est une opportunité pour moi de me forcer
à aquérir ce savoir qui me manque.
Il y a cependant quelques questions... Les patches distribués sont
souvent avec une extension diff ou patch. Dois-je en déduire que les
patch sont distribués sous plusieurs "formats"? _un peu_ comme il existe
des gzips et des bzips?
En effet, on peut utiliser plusieurs formats de sortie de diff, mais
le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
Mon plus grand souci est au niveau du positionnement du répertoire à
partir duquel on génère le "fichier différentiel" et aussi de celui à
partir duquel on lance le patchage. Y a t il une attitude standard à
adopter? des options de patches communément utilisées?
Non, mais comme pour les tar, je préfère le faire pour tout le
répertoire, et utiliser patch -p1.
Auriez-vous dans vos bookmarks un bon tutoriel qui traite de la chose, ce
qui me permettrait de ne pas réinventer la roue mais éventuellement
d'améliorer (si besoin est) celui qui existe déjà?
Oui:
cp -r src src.original
cd src ; emacs * ; cd ..
diff -Naur src.original src | gzip > modifs.patch.gz
J'ai déjà un set de documents, mais si vous en avez un que vous trouvez
exceptionnel dans vos bookmarks, je suis interessé.
Merci beaucoup.
Petit anecdote historique. Le mot "patch" nomme originellement les
bouts de cables utilisés dans les premiers ordinateurs où les
programmes étaient litéralement _cablés_ sur des panneaux amovibles:
on changeait de programme en changeant de panneau de programmation
dans le tabulateur. Quand il y avait une bogue dans ces "programmes",
on ajoutait ou en enlevait un cable, un patch pour le modifier en
espérant le corriger...
On m'a confié la mission d'introduire la notion de patch à un auditoire qui débute en programmation et qui ne comprend rien à l'administration système.
Je n'ai jamais patché volontairement un programme. Si je l'ai fait c'est un script qui l'a fait à ma place (les gestionnaires de packages des distributions pour lesquelles je fabrique des packages).
Je n'ai pas refusé parceque c'est une opportunité pour moi de me forcer à aquérir ce savoir qui me manque.
Il y a cependant quelques questions... Les patches distribués sont souvent avec une extension diff ou patch. Dois-je en déduire que les patch sont distribués sous plusieurs "formats"? _un peu_ comme il existe des gzips et des bzips?
En effet, on peut utiliser plusieurs formats de sortie de diff, mais le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
Mon plus grand souci est au niveau du positionnement du répertoire à partir duquel on génère le "fichier différentiel" et aussi de celui à partir duquel on lance le patchage. Y a t il une attitude standard à adopter? des options de patches communément utilisées?
Non, mais comme pour les tar, je préfère le faire pour tout le répertoire, et utiliser patch -p1.
Auriez-vous dans vos bookmarks un bon tutoriel qui traite de la chose, ce qui me permettrait de ne pas réinventer la roue mais éventuellement d'améliorer (si besoin est) celui qui existe déjà?
Oui:
cp -r src src.original cd src ; emacs * ; cd .. diff -Naur src.original src | gzip > modifs.patch.gz
J'ai déjà un set de documents, mais si vous en avez un que vous trouvez exceptionnel dans vos bookmarks, je suis interessé.
Merci beaucoup.
Petit anecdote historique. Le mot "patch" nomme originellement les bouts de cables utilisés dans les premiers ordinateurs où les programmes étaient litéralement _cablés_ sur des panneaux amovibles: on changeait de programme en changeant de panneau de programmation dans le tabulateur. Quand il y avait une bogue dans ces "programmes", on ajoutait ou en enlevait un cable, un patch pour le modifier en espérant le corriger...
-- __Pascal Bourguignon__ http://www.informatimago.com/ Grace personified, I leap into the window. I meant to do that.
Nicolas George
Pascal Bourguignon wrote in message :
Il y a cependant quelques questions... Les patches distribués sont souvent avec une extension diff ou patch. Dois-je en déduire que les patch sont distribués sous plusieurs "formats"? _un peu_ comme il existe des gzips et des bzips? En effet, on peut utiliser plusieurs formats de sortie de diff, mais
le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
<logicor>
Je ne suis pas d'accord. Oui, il y a plusieurs formats de patch, mais le format utilisé n'est pas indiqué par l'extension .diff ou .patch, qui m'a l'air de surtout dépendre de l'humeur de celui qui produit le fichier. Donc non, il ne doit pas déduire l'un de l'autre.
</logicor>
Petit anecdote historique. Le mot "patch" nomme originellement les bouts de cables utilisés dans les premiers ordinateurs où les programmes étaient litéralement _cablés_ sur des panneaux amovibles:
Originellement, c'est beaucoup dire. À la base, un patch, c'est quand même une pièce de tissu pour réparer un trou dans un vêtement (ou cacher un oeil crevé).
Pascal Bourguignon wrote in message
<87irzykr8m.fsf@thalassa.informatimago.com>:
Il y a cependant quelques questions... Les patches distribués sont
souvent avec une extension diff ou patch. Dois-je en déduire que les
patch sont distribués sous plusieurs "formats"? _un peu_ comme il existe
des gzips et des bzips?
En effet, on peut utiliser plusieurs formats de sortie de diff, mais
le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
<logicor>
Je ne suis pas d'accord. Oui, il y a plusieurs formats de patch, mais le
format utilisé n'est pas indiqué par l'extension .diff ou .patch, qui m'a
l'air de surtout dépendre de l'humeur de celui qui produit le fichier. Donc
non, il ne doit pas déduire l'un de l'autre.
</logicor>
Petit anecdote historique. Le mot "patch" nomme originellement les
bouts de cables utilisés dans les premiers ordinateurs où les
programmes étaient litéralement _cablés_ sur des panneaux amovibles:
Originellement, c'est beaucoup dire. À la base, un patch, c'est quand même
une pièce de tissu pour réparer un trou dans un vêtement (ou cacher un oeil
crevé).
Il y a cependant quelques questions... Les patches distribués sont souvent avec une extension diff ou patch. Dois-je en déduire que les patch sont distribués sous plusieurs "formats"? _un peu_ comme il existe des gzips et des bzips? En effet, on peut utiliser plusieurs formats de sortie de diff, mais
le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
<logicor>
Je ne suis pas d'accord. Oui, il y a plusieurs formats de patch, mais le format utilisé n'est pas indiqué par l'extension .diff ou .patch, qui m'a l'air de surtout dépendre de l'humeur de celui qui produit le fichier. Donc non, il ne doit pas déduire l'un de l'autre.
</logicor>
Petit anecdote historique. Le mot "patch" nomme originellement les bouts de cables utilisés dans les premiers ordinateurs où les programmes étaient litéralement _cablés_ sur des panneaux amovibles:
Originellement, c'est beaucoup dire. À la base, un patch, c'est quand même une pièce de tissu pour réparer un trou dans un vêtement (ou cacher un oeil crevé).
Bob qui Trolle
Rakotomandimby (R12y) Mihamina wrote:
Bonjour,
On m'a confié la mission d'introduire la notion de patch à un auditoire qui débute en programmation et qui ne comprend rien à l'administration système.
Je te conseille de jeter un oeil à :
http://encycl.opentopia.com/term/Diff
intéressant résumé de l'histoire de diff, ses origines, sa relation avec ed (l'éditeur historique sous Unix), et sa relation avec SCCS, l'ancêtre de RCS, lui-même ancêtre de CVS, à compléter par l'introduction par Larry Wall (le codeur de PERL) de la commande patch.
http://encycl.opentopia.com/term/Patch_(Unix)
à noter : "The Berkeley distribution of Unix made a point of adding the context format (-C) and recursion on filesystem directory structures (-r). The GNU Project's diff application includes the unified context format and is combined in a package with other diff and patch related utilities."
Rakotomandimby (R12y) Mihamina wrote:
Bonjour,
On m'a confié la mission d'introduire la notion de patch à un auditoire
qui débute en programmation et qui ne comprend rien à l'administration
système.
Je te conseille de jeter un oeil à :
http://encycl.opentopia.com/term/Diff
intéressant résumé de l'histoire de diff, ses origines, sa relation avec
ed (l'éditeur historique sous Unix), et sa relation avec SCCS, l'ancêtre
de RCS, lui-même ancêtre de CVS, à compléter par l'introduction par
Larry Wall (le codeur de PERL) de la commande patch.
http://encycl.opentopia.com/term/Patch_(Unix)
à noter : "The Berkeley distribution of Unix made a point of adding
the context format (-C) and recursion on filesystem directory structures
(-r). The GNU Project's diff application includes the unified context
format and is combined in a package with other diff and patch related
utilities."
On m'a confié la mission d'introduire la notion de patch à un auditoire qui débute en programmation et qui ne comprend rien à l'administration système.
Je te conseille de jeter un oeil à :
http://encycl.opentopia.com/term/Diff
intéressant résumé de l'histoire de diff, ses origines, sa relation avec ed (l'éditeur historique sous Unix), et sa relation avec SCCS, l'ancêtre de RCS, lui-même ancêtre de CVS, à compléter par l'introduction par Larry Wall (le codeur de PERL) de la commande patch.
http://encycl.opentopia.com/term/Patch_(Unix)
à noter : "The Berkeley distribution of Unix made a point of adding the context format (-C) and recursion on filesystem directory structures (-r). The GNU Project's diff application includes the unified context format and is combined in a package with other diff and patch related utilities."
Laurent Wacrenier
Rakotomandimby (R12y) Mihamina écrit:
Mon plus grand souci est au niveau du positionnement du répertoire à partir duquel on génère le "fichier différentiel" et aussi de celui à partir duquel on lance le patchage. Y a t il une attitude standard à adopter? des options de patches communément utilisées?
Aller dans le répertoire de la distribution et faire un diff -u ancien nouveau Sur le fichier modifié. S'il y a plusieurs fichiers, répeter l'opération et concatener les sorties.
On peut faire le diff récursivement, mais il faut éviter de patcher des fichiers auto générés. Éviter le copier-coller de patchs le résultat peut être corrompu.
Mon plus grand souci est au niveau du positionnement du répertoire à
partir duquel on génère le "fichier différentiel" et aussi de celui à
partir duquel on lance le patchage. Y a t il une attitude standard à
adopter? des options de patches communément utilisées?
Aller dans le répertoire de la distribution et faire un
diff -u ancien nouveau
Sur le fichier modifié. S'il y a plusieurs fichiers, répeter
l'opération et concatener les sorties.
On peut faire le diff récursivement, mais il faut éviter de patcher
des fichiers auto générés. Éviter le copier-coller de patchs le résultat
peut être corrompu.
Mon plus grand souci est au niveau du positionnement du répertoire à partir duquel on génère le "fichier différentiel" et aussi de celui à partir duquel on lance le patchage. Y a t il une attitude standard à adopter? des options de patches communément utilisées?
Aller dans le répertoire de la distribution et faire un diff -u ancien nouveau Sur le fichier modifié. S'il y a plusieurs fichiers, répeter l'opération et concatener les sorties.
On peut faire le diff récursivement, mais il faut éviter de patcher des fichiers auto générés. Éviter le copier-coller de patchs le résultat peut être corrompu.
Laurent Wacrenier
Bob qui Trolle écrit:
à noter : "The Berkeley distribution of Unix made a point of adding the context format (-C) and recursion on filesystem directory structures
L'option pour le diff contextuel est "-c". À utiliser quand "-u" n'est pas disponible (ex: HP-UX). "-C" permet d'augmenter le nombre de ligne du contexte. C'est bien utile soit quand on veut montrer quelque chose de précis ou quand le source est particulièrement aéré.
Bob qui Trolle <dsi-whores@lumumbura.edu> écrit:
à noter : "The Berkeley distribution of Unix made a point of adding
the context format (-C) and recursion on filesystem directory structures
L'option pour le diff contextuel est "-c". À utiliser quand "-u" n'est
pas disponible (ex: HP-UX). "-C" permet d'augmenter le nombre de ligne
du contexte. C'est bien utile soit quand on veut montrer quelque chose
de précis ou quand le source est particulièrement aéré.
à noter : "The Berkeley distribution of Unix made a point of adding the context format (-C) and recursion on filesystem directory structures
L'option pour le diff contextuel est "-c". À utiliser quand "-u" n'est pas disponible (ex: HP-UX). "-C" permet d'augmenter le nombre de ligne du contexte. C'est bien utile soit quand on veut montrer quelque chose de précis ou quand le source est particulièrement aéré.
drkm
Laurent Wacrenier <lwa@ teaser . fr> writes:
Éviter le copier-coller de patchs le résultat peut être corrompu.
À quoi penses-tu en particulier ?
--drkm
Laurent Wacrenier <lwa@ teaser . fr> writes:
Éviter le copier-coller de patchs le résultat
peut être corrompu.
Éviter le copier-coller de patchs le résultat peut être corrompu.
À quoi penses-tu en particulier ?
Aux tabulations remplacées par des espaces.
Éventuelement, les accents et autres caractères non ascii qui peuvent changer d'encodage, mais il n'y en a pas trop dans les sources.
Nicolas S.
En effet, on peut utiliser plusieurs formats de sortie de diff, mais le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
<logicor>
Je ne suis pas d'accord. Oui, il y a plusieurs formats de patch, mais le format utilisé n'est pas indiqué par l'extension .diff ou .patch, qui m'a l'air de surtout dépendre de l'humeur de celui qui produit le fichier. Donc non, il ne doit pas déduire l'un de l'autre.
</logicor>
Dans tous les cas, ne pas oublier de créer un petit document d'aide pour indiquer les bonnes lignes de commande, et permettre d'appliquer correctement le patch. Surtout si on a l'intention de le diffuser.
Cordialement, Nicolas S.
-- Il est toujours sympa de laisser un petit message pour expliquer comment on a réussi à se sortir d'une difficulté. Cela aide les autres qui pourraient avoir rencontré les mêmes problèmes, mais aussi les contributeurs. ;-)
E-mail: enlever "-heh" pour m'écrire.
En effet, on peut utiliser plusieurs formats de sortie de diff, mais
le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
<logicor>
Je ne suis pas d'accord. Oui, il y a plusieurs formats de patch, mais le
format utilisé n'est pas indiqué par l'extension .diff ou .patch, qui m'a
l'air de surtout dépendre de l'humeur de celui qui produit le fichier. Donc
non, il ne doit pas déduire l'un de l'autre.
</logicor>
Dans tous les cas, ne pas oublier de créer un petit document d'aide pour
indiquer les bonnes lignes de commande, et permettre d'appliquer
correctement le patch. Surtout si on a l'intention de le diffuser.
Cordialement,
Nicolas S.
--
Il est toujours sympa de laisser un petit message pour expliquer
comment on a réussi à se sortir d'une difficulté.
Cela aide les autres qui pourraient avoir rencontré les mêmes problèmes,
mais aussi les contributeurs. ;-)
En effet, on peut utiliser plusieurs formats de sortie de diff, mais le mieux c'est d'utiliser celui produit par diff -u (diff -Naur).
<logicor>
Je ne suis pas d'accord. Oui, il y a plusieurs formats de patch, mais le format utilisé n'est pas indiqué par l'extension .diff ou .patch, qui m'a l'air de surtout dépendre de l'humeur de celui qui produit le fichier. Donc non, il ne doit pas déduire l'un de l'autre.
</logicor>
Dans tous les cas, ne pas oublier de créer un petit document d'aide pour indiquer les bonnes lignes de commande, et permettre d'appliquer correctement le patch. Surtout si on a l'intention de le diffuser.
Cordialement, Nicolas S.
-- Il est toujours sympa de laisser un petit message pour expliquer comment on a réussi à se sortir d'une difficulté. Cela aide les autres qui pourraient avoir rencontré les mêmes problèmes, mais aussi les contributeurs. ;-)