Akim Demaille <akim(a)epita.fr> writes:
No comment...
Je crois que c'est toi qui interprète mal la sortie de diff...
Un exemple :
$ echo -n "without" > foo1
$ echo "with" > foo2
$ hexdump -C foo1
00000000 77 69 74 68 6f 75 74 |without|
00000007
$ hexdump -C foo2
00000000 77 69 74 68 0a |with.|
00000005
$ diff -u foo1 foo2
--- foo1 2004-04-20 12:31:34.000000000 +0200
+++ foo2 2004-04-20 12:31:43.000000000 +0200
@@ -1 +1 @@
-without
\ Pas de fin de ligne à la fin du fichier.
+with
$ diff -u foo2 foo1
--- foo2 2004-04-20 12:31:43.000000000 +0200
+++ foo1 2004-04-20 12:31:34.000000000 +0200
@@ -1 +1 @@
-with
+without
\ Pas de fin de ligne à la fin du fichier.
Le message est affiché même lorsque le '\n' a été enlevé. Pour peu que
la dérnière ligne soit vide et que -w est utilisé, on obtient un
comportement un peu particulier :
$ echo -en "without\n " > foo1
$ echo -en "with\n\n" > foo2
$ hexdump -C foo1
00000000 77 69 74 68 6f 75 74 0a 20 |without. |
00000009
$ hexdump -C foo2
00000000 77 69 74 68 0a 0a |with..|
00000006
$ diff -uw foo1 foo2
--- foo1 2004-04-20 12:36:08.000000000 +0200
+++ foo2 2004-04-20 12:36:22.000000000 +0200
@@ -1,2 +1,2 @@
-without
+with
\ Pas de fin de ligne à la fin du fichier.
$ diff -uw foo2 foo1
--- foo2 2004-04-20 12:36:22.000000000 +0200
+++ foo1 2004-04-20 12:36:08.000000000 +0200
@@ -1,2 +1,2 @@
-with
+without
$
Certaines choses restent encore un peu mystèrieuses pour moi (le fait
que le dernier diff ne mentionne pas que le '\n' terminal ai été
retiré par exemple). Néanmoins, cela explique le message : le fichier
d'origine n'avais pas de '\n' terminal et sa dernière ligne était
uniquement composée d'espaces, et cela à été corrigé lors du checkin.
Ce n'est donc pas l'auteur du checkin qu'il faut blamer, mais la
personne qui avait crée ce fichier auparavant. :)
--
Thomas Claveirole
thomas.claveirole(a)lrde.epita.fr