* git diff shows twice “\ No newline at end of file” - no need for repetition
@ 2025-08-13 7:20 Дилян Палаузов
2025-08-13 13:11 ` Phillip Wood
2025-08-13 14:42 ` Junio C Hamano
0 siblings, 2 replies; 4+ messages in thread
From: Дилян Палаузов @ 2025-08-13 7:20 UTC (permalink / raw)
To: git
Hello,
when a file, which does not end in a new line, is modified, git diff shows twice the text “\ No newline at end of file”. As this piece of the file is not modified, I think git diff should print it once. In the example below the first “\ No newline at end of file” should be skipped.
I am using git 2.50.0.
As a matter of fact github also shows this information twice - https://github.com/alex-shpak/hugo-book/pull/755/files - which I find is bad.
Greetings
Дилян
$ git diff
diff --git a/layouts/_partials/docs/toc-show.html b/layouts/_partials/docs/toc-show.html
index 21122a1..c243ae5 100644
--- a/layouts/_partials/docs/toc-show.html
+++ b/layouts/_partials/docs/toc-show.html
@@ -2,4 +2,4 @@
and
(default .Site.Params.BookToC .Params.BookToC)
(not (eq .TableOfContents "<nav id=\"TableOfContents\"></nav>"))
-) }}
\ No newline at end of file
+}}
\ No newline at end of file
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: git diff shows twice “\ No newline at end of file” - no need for repetition
2025-08-13 7:20 git diff shows twice “\ No newline at end of file” - no need for repetition Дилян Палаузов
@ 2025-08-13 13:11 ` Phillip Wood
2025-08-13 14:51 ` Junio C Hamano
2025-08-13 14:42 ` Junio C Hamano
1 sibling, 1 reply; 4+ messages in thread
From: Phillip Wood @ 2025-08-13 13:11 UTC (permalink / raw)
To: Дилян Палаузов
Cc: Git Mailing List
On 13/08/2025 08:20, Дилян Палаузов wrote:
> Hello,
>
> when a file, which does not end in a new line, is modified, git diff shows twice the text “\ No newline at end of file”. As this piece of the file is not modified, I think git diff should print it once. In the example below the first “\ No newline at end of file” should be skipped.
The "\ No newline at end of file" applies to the line that precedes it.
Removing the first instance in your example would mean the the newline
at the end of the file had been removed when the line was changed. The
output of git matches what GNU diff shows for incomplete lines.
Thanks
Phillip
> I am using git 2.50.0.
>
> As a matter of fact github also shows this information twice - https://github.com/alex-shpak/hugo-book/pull/755/files - which I find is bad.
>
> Greetings
> Дилян
>
> $ git diff
> diff --git a/layouts/_partials/docs/toc-show.html b/layouts/_partials/docs/toc-show.html
> index 21122a1..c243ae5 100644
> --- a/layouts/_partials/docs/toc-show.html
> +++ b/layouts/_partials/docs/toc-show.html
> @@ -2,4 +2,4 @@
> and
> (default .Site.Params.BookToC .Params.BookToC)
> (not (eq .TableOfContents "<nav id=\"TableOfContents\"></nav>"))
> -) }}
> \ No newline at end of file
> +}}
> \ No newline at end of file
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: git diff shows twice “\ No newline at end of file” - no need for repetition
2025-08-13 13:11 ` Phillip Wood
@ 2025-08-13 14:51 ` Junio C Hamano
0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2025-08-13 14:51 UTC (permalink / raw)
To: Phillip Wood
Cc: Дилян Палаузов,
Git Mailing List
Phillip Wood <phillip.wood123@gmail.com> writes:
> On 13/08/2025 08:20, Дилян Палаузов wrote:
>> Hello,
>> when a file, which does not end in a new line, is modified, git diff
>> shows twice the text “\ No newline at end of file”. As this piece
>> of the file is not modified, I think git diff should print it once.
>> In the example below the first “\ No newline at end of file”
>> should be skipped.
>
> The "\ No newline at end of file" applies to the line that precedes
> it. Removing the first instance in your example would mean the the
> newline at the end of the file had been removed when the line was
> changed. The output of git matches what GNU diff shows for incomplete
> lines.
>
> Thanks
Thanks for a concise and accurate diagnosis. It is unfortunate that
we cannot point at POSIX X-<.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: git diff shows twice “\ No newline at end of file” - no need for repetition
2025-08-13 7:20 git diff shows twice “\ No newline at end of file” - no need for repetition Дилян Палаузов
2025-08-13 13:11 ` Phillip Wood
@ 2025-08-13 14:42 ` Junio C Hamano
1 sibling, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2025-08-13 14:42 UTC (permalink / raw)
To: Дилян Палаузов
Cc: git
Дилян Палаузов <dilyan.palauzov@aegee.org> writes:
> Hello,
[jc: please wrap long lines]
> when a file, which does not end in a new line, is modified, git
> diff shows twice the text “\ No newline at end of file”. As this
> piece of the file is not modified, I think git diff should print
> it once.
Perhaps "this piece of the file" is indeed modified. In your
example, the file before the change had a line with ") }}" on it
without terminating newline at the end, and this piece of the file
is changed to a line with "}}" on it without terminating newline.
The first "\ No newline" belongs to (is a part of) the file before
the change and annotates something peculiar about that line, and the
second "\ No newline" belongs to (is a part of) the file after the
change. If the line were complete before your change and you made
it incomplete while removing ") ", then the first "\ No newline"
would not have been in the output. If you fixed the incomplete line
at the end of file by adding a newline at the end while you removing
") ", then the second "\ No newline" would not have been in the
output. But in this case, I think you had it incomplete before the
change, and you did not fix it and the incompleteness of the line
remained after the change, so "diff" should mark both line before
and after the change incomplete with "\ No newline" marker.
> -) }}
> \ No newline at end of file
> +}}
> \ No newline at end of file
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-08-13 14:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-13 7:20 git diff shows twice “\ No newline at end of file” - no need for repetition Дилян Палаузов
2025-08-13 13:11 ` Phillip Wood
2025-08-13 14:51 ` Junio C Hamano
2025-08-13 14:42 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).