621 votes

Pas de saut de ligne à la fin du fichier

Lorsque vous faites un git diff il est dit "Pas de saut de ligne en fin de fichier".

Qu'est-ce exactement ce message essaie de nous dire?

(Comme j'ai loupé quelque chose? Pourquoi est-ce si important?)

560voto

Alexander Gladysh Points 9554

Il indique que vous n'avez pas de saut de ligne (habituellement '\n', aka CR ou CRLF) à la fin du fichier.

C'est, pour le dire simplement, le dernier octet (ou d'octets si vous êtes sur Windows) dans le fichier n'est pas un retour à la ligne.

Le message s'affiche parce que sinon, il n'y a aucun moyen de faire la différence entre un fichier où il y a un saut de ligne à la fin et un qui ne l'est pas. Diff a la sortie d'une nouvelle ligne de toute façon, ou que le résultat serait plus difficile à lire ou automatiquement.

Notez qu'il est de bon ton de toujours mettre le retour à la ligne en dernier caractère, si elle est autorisée par le format de fichier. En outre, par exemple, pour le C et le C++ fichiers d'en-tête, il est requis par la norme du langage.

38voto

Jaseem Points 705

Si vous ajoutez une nouvelle ligne à la fin du fichier existant qui n'est pas d'avoir un saut de ligne à la fin déjà, la diff montrera vieille dernière ligne aussi que modifiée, lorsque conceptuellement ses pas.

Au moins une bonne raison d'ajouter une nouvelle ligne à la fin.

19voto

JohnD Points 2195

Il indique simplement que la fin du fichier n'est pas un retour à la ligne. Ce n'est pas une catastrophe, c'est juste un message pour le rendre plus clair le fait qu'il n'existe pas lorsque l'on regarde une diff dans la ligne de commande.

7voto

mmcorrelo Points 232

Le problème de base est que vous définissez ligne et si fin sur la ligne de séquence de caractères est une partie de la ligne ou pas. UNIX éditeurs (comme VIM) ou des outils (tels que Git) utilisation EOL séquence de caractères comme terminateur de ligne, donc c'est une partie de la ligne. Il est similaire à la l'utilisation du point-virgule (;) dans C et Pascal. En C, point-virgule qui termine états, en Pascal, il se sépare d'eux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X