734 Stimmen

Welche Bedeutung hat die Meldung "Kein Zeilenumbruch am Ende der Datei"?

Wenn Sie eine git diff heißt es "Kein Zeilenumbruch am Ende der Datei" .

Welche Bedeutung hat die Botschaft und was will sie uns sagen?

20voto

JohnD Punkte 3846

Es zeigt lediglich an, dass am Ende der Datei kein Zeilenumbruch steht. Das ist keine Katastrophe, sondern nur eine Meldung, um deutlicher zu machen, dass es keinen gibt, wenn man sich ein diff in der Kommandozeile ansieht.

12voto

user34660 Punkte 2234

Es gibt eine Sache, die ich in früheren Antworten nicht gesehen habe. Die Warnung über kein Zeilenende könnte eine Warnung sein, wenn ein Teil einer Datei abgeschnitten wurde. Es könnte ein Symptom für fehlende Daten sein.

7voto

mmcorrelo Punkte 900

Das Kernproblem besteht darin, wie Sie Linie definieren und ob Ende-an-Linie Zeichenfolge Teil der Zeile ist oder nicht. UNIX-basierte Editoren (z. B. VIM) oder Tools (z. B. Git) verwenden die EOL-Zeichenfolge als Zeilenende, daher ist es ein Teil der Zeile. Es ist vergleichbar mit Verwendung von Semikolon (;) in C und Pascal. In C beendet das Semikolon Anweisungen, in Pascal trennt es sie.

5voto

Brian Blum Punkte 61

Dies führt tatsächlich zu einem Problem, da die Zeilenenden automatisch geändert werden, wodurch die Dateien verschmutzt werden, ohne dass Änderungen an ihnen vorgenommen werden. Siehe diesen Beitrag zur Lösung.

git ersetzt LF durch CRLF

4voto

Doug Coburn Punkte 2257

Quelldateien werden oft von Werkzeugen verkettet (C, C++: Header-Dateien, Javascript: Bundler). Wenn Sie das Zeilenumbruchzeichen weglassen, könnten Sie unangenehme Fehler verursachen (wenn die letzte Zeile einer Quelldatei mit der ersten Zeile der nächsten Quelldatei verkettet wird). Hoffentlich fügen alle Tools zum Verketten von Quellcode einen Zeilenumbruch zwischen verketteten Dateien ein, aber das scheint nicht immer der Fall zu sein.

Der springende Punkt ist, dass Zeilenumbrüche in den meisten Sprachen eine semantische Bedeutung haben und dass das Ende der Datei keine sprachlich definierte Alternative für das Zeilenumbruchszeichen ist. Sie sollten also jede Anweisung/jeden Ausdruck mit einem Zeilenumbruch abschließen - auch den letzten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X