Re: About git reporting missing newline for symlinks
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 12, 2022, 21:34 UTC
- Message-ID
- <xmqq35bsk9og.fsf@gitster.g>
- In-Reply-To
- <Y0cyX8Ggp+dkgAjX@tapette.crustytoothpaste.net>
"brian m. carlson" <sandals@crustytoothpaste.net> writes:
Show 19 quoted lines
> On 2022-10-12 at 21:17:04, Ignacio Taranto wrote: >> So, both git diff and git show display "\ No newline at end of file" >> for symlinks. >> >> I think this is related to how Git renders diffs, IMO it shouldn't >> display a warning about >> newlines for symlinks. >> >> Am I making any sense here? > > What Git shows for a symlink is the destination of the symlink. On > Unix systems other than macOS, path names may contain any byte other > than NUL, including a newline. > > While it obviously is not a good practice to include newlines in your > paths, it is possible, and Git would not be able to round-trip symlinks > where the final character of the destination is a newline if we didn't > handle trailing newlines properly. As a result, we're not likely to > change things here because it's required for correctness.
Just a fun thought experiment, but I wonder what would happen if a user chooses to add .clean and .smudge filter that adds and strips a LF at the end ;-)