OVH Cloud OVH Cloud

diff

8 réponses
Avatar
Hugolino
Bonsoir,

J'ai réussi à résoudre un problème que j'avais posé sur fcolc. Pour en
remercier les contributeurs je voudrais maintenant y donner la
solution qui est passé par une recompilation du noyau.

Donc je fais un diff entre le fichier de config du noyau qui posait
problème et le fichier de config qui a résolu le problème.

Le problème (oui j'ai lu et relu la page de man de diff) est que je ne
sais pas interpréter le résultat.

J'ai fait:
diff Config-2.6.7-040728 Config-2.6.7-23Sept04 > diff-Config-040728-040923

et j'ouvre le fichier avec vim en espérant que la coloration syntaxique
me soit d'un peu de secours.

Mais rien du tout: j'ai l'impression d'être bête, c'est pénible...
J'ai poutant les deux fichiers Config-2.6.7-040728 et
Config-2.6.7-23Sept04 ouverts avec Vi dans deux aterm.

Exemple (les numéros de ligne viennent de Vi):
Dans le fichier obtenu avec diff, j'ai
1 27c27,28
2 < # CONFIG_IKCONFIG is not set
3 ---
4 > CONFIG_IKCONFIG=y
5 > CONFIG_IKCONFIG_PROC=y
6 77a79

Première question: On dirait qu'il a comparé une ligne du premier
fichier à *deux* lignes du second. Qu'est -ce que j'ai loupé ?


Et dans Config-2.6.7-040728, j'ai (avec les numéro de ligne de Vi)
27 # CONFIG_IKCONFIG is not set
28 # CONFIG_EMBEDDED is not set
29 CONFIG_KALLSYMS=y
30 CONFIG_FUTEX=y

alors que dans Config-2.6.7-23Sept04 j'ai:
27 CONFIG_IKCONFIG=y
28 CONFIG_IKCONFIG_PROC=y
29 # CONFIG_EMBEDDED is not set
30 CONFIG_KALLSYMS=y

Donc il a comparé les lignes 27 des deux fichiers, mais pourquoi
y-a-t'il la ligne "> CONFIG_IKCONFIG_PROC=y" qui n'apparait pas dans le
premier fichier mais dans le deuxième fichier en ligne 28 ?


Bref, je suis complètement perdu.
Comment lire le résultat de la commande diff ?

Je continue:
Dans le fichier créé par diff, j'ai:

6 77a79
7 > # CONFIG_X86_EMU486 is not set
8 151c153,175

Les lignes 75 à 79 du premier fichier sont:
75 # CONFIG_MCYRIXIII is not set
76 # CONFIG_MVIAC3_2 is not set
77 CONFIG_X86_GENERIC=y
78 CONFIG_X86_CMPXCHG=y
79 CONFIG_X86_XADD=y

Celles du deuxième sont:
75 # CONFIG_MWINCHIP3D is not set
76 # CONFIG_MCYRIXIII is not set
77 # CONFIG_MVIAC3_2 is not set
78 CONFIG_X86_GENERIC=y
79 # CONFIG_X86_EMU486 is not set

Elles sont toutes différentes ! Pourquoi la sortie de diff n'en
parle-t-elle pas ? (même si j'ai bien vu que la ligne 77 du premier
fichier est la même que la 78ème du second fichier) Mais toutes les
autres lignes sont différentes et diff n'en dit rien ?!??

Vous l'avez compris, j'ai un problème pour interpréter la sortie de la
commande diff.


Merci de votre aide.


--
> il me semble que domain.com est réservé mais n'existe pas. Pour
> éviter les problèmes avec ceux qui recopient les FAQ texto.
C'est quoi ces FAQ texto, ça parle de traitement de texte ?
-+- FC in Guide du linuxien pervers - "In texto veritas" -+-

8 réponses

Avatar
Jérémy JUST
On Sat, 25 Sep 2004 19:27:42 +0200
Hugolino wrote:

Dans le fichier obtenu avec diff, j'ai
1 27c27,28
2 < # CONFIG_IKCONFIG is not set
3 ---
4 > CONFIG_IKCONFIG=y
5 > CONFIG_IKCONFIG_PROC=y
6 77a79

Première question: On dirait qu'il a comparé une ligne du premier
fichier à *deux* lignes du second. Qu'est -ce que j'ai loupé ?


Non, il n'a pas « comparé à » mais « constaté qu'il fallait remplacer
par ».
Il faut voir les chevrons du format diff comme des flèches qui
indiquent les excisions/insertions à effectuer pour passer d'un fichier
à l'autre.

Par exemple ici, il faut retirer la ligne
# CONFIG_IKCONFIG is not set
et ajouter à la place les lignes
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

Rien de bien compliqué.


Si tu veux mieux visualiser, essaie l'option -y de diff
(éventuellement dans une xterm très large, avec l'option --width 0).


Comment lire le résultat de la commande diff ?


Xemacs colore très bien les patches (la sortie de diff est un patch).
Tant qu'on y est, tu devrais utiliser l'option -u de diff pour générer
des patches à diffuser; c'est un diff « unifié », qui fournit quelques
lignes de contexte autour des différences (ça permet de patcher des
fichiers légèrement différents des tiens).


Je continue:
Dans le fichier créé par diff, j'ai:

6 77a79
7 > # CONFIG_X86_EMU486 is not set
8 151c153,175


Essaie de faire ta comparaison dans l'autre sens. 77a79 devrait se
transformer en 79d77.
a -> added
d -> deleted
c -> changed

Mais encore une fois, utilise plutôt « diff -u ». C'est beaucoup plus
lisible par un humain, et plus fiable pour porter les patches.


--
Jérémy JUST

Avatar
TiChou
Dans le message <news:,
*Jérémy JUST* tapota sur f.c.o.unix :

Mais encore une fois, utilise plutôt « diff -u ». C'est beaucoup plus
lisible par un humain,


Le format « côte à côte » obtenu avec l'option '-y' est lui aussi plus
humain pour visualiser les différences.

--
TiChou

Avatar
DIG
On Sat, 25 Sep 2004 19:27:42 +0200, wrote:

[...]

J'ai fait:
diff Config-2.6.7-040728 Config-2.6.7-23Sept04 > diff-Config-040728-040923

et j'ouvre le fichier avec vim en espérant que la coloration syntaxique
me soit d'un peu de secours.


Vous devriez essayer ça:

$ vimdiff Config-2.6.7-040728 Config-2.6.7-23Sept04

pour le mode texte, ou ça:

$ gvimdiff Config-2.6.7-040728 Config-2.6.7-23Sept04

pour le mode graphique.

[...]

Vous l'avez compris, j'ai un problème pour interpréter la sortie de la
commande diff.


Essayez plutôt ``diff -u'', si vous voulez /lire/ la différence.


A plus tard,

--
DIG (Dmitri I GOULIAEV)
Aahz's law: The best way to get information on usenet is
not to ask a question, but to post the wrong information.

Avatar
Pascal Bourguignon
DIG writes:
Essayez plutÿþ"t ``diff -u'', si vous voulez /lire/ la diffÿþ rence.
DIG (Dmitri I GOULIAEV)


Utilisez UTF-8 ou ISO-8859-1 pour envoyer des accents franÿþçais, pas KOI-8 !

--
__Pascal Bourguignon__ http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.

Avatar
DIG
On 26 Sep 2004 05:20:59 +0200, wrote:

Utilisez UTF-8 ou ISO-8859-1 pour envoyer des accents français.
Bien sûr.


--
DIG (Dmitri I GOULIAEV)
Aahz's law: The best way to get information on usenet is
not to ask a question, but to post the wrong information.

Avatar
DIG
On 26 Sep 2004 05:20:59 +0200, wrote:

[...]
Utilisez UTF-8 ou ISO-8859-1 pour envoyer des accents français.
Bien sûr.


--
DIG (Dmitri I GOULIAEV)
Aahz's law: The best way to get information on usenet is
not to ask a question, but to post the wrong information.

Avatar
Pas de spam
DIG écrivait :

On Sat, 25 Sep 2004 19:27:42 +0200, wrote:

[...]

J'ai fait:
diff Config-2.6.7-040728 Config-2.6.7-23Sept04 > diff-Config-040728-040923

et j'ouvre le fichier avec vim en espИrant que la coloration syntaxique
me soit d'un peu de secours.


Vous devriez essayer Гa:

$ vimdiff Config-2.6.7-040728 Config-2.6.7-23Sept04

pour le mode texte, ou Гa:

$ gvimdiff Config-2.6.7-040728 Config-2.6.7-23Sept04

pour le mode graphique.

[...]

Vous l'avez compris, j'ai un problХme pour interprИter la sortie de la
commande diff.


Essayez plutТt ``diff -u'', si vous voulez /lire/ la diffИrence.


Une nuit à l'hôtel pour un € ou à l'œil ?
--
Pas de spam


Avatar
Hugolino
Le Sun, 26 Sep 2004 00:48:40 +0200, Jérémy JUST a écrit:
On Sat, 25 Sep 2004 19:27:42 +0200
Hugolino wrote:

Première question: On dirait qu'il a comparé une ligne du premier
fichier à *deux* lignes du second. Qu'est -ce que j'ai loupé ?


Non, il n'a pas « comparé à » mais « constaté qu'il fallait remplacer
par ».
Il faut voir les chevrons du format diff comme des flèches qui
indiquent les excisions/insertions à effectuer pour passer d'un fichier
à l'autre.


Bien vu, c'est bien plus clair maintenant.
Merci de ton aide (et merci aux autres contributeurs également)

--
En plus, question "self esteem", Linux, c'est autre chose ("yeah, j'ai
reussi a compiler un noyau !" :-)
Moi je le fais faire par gcc.

-+- MB in Guide du linuxien pervers - "Bien configurer son égos" -+-