]> git.ipfire.org Git - thirdparty/git.git/commit
mingw: special-case index entries for symlinks with buggy size
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 9 Jan 2026 20:05:15 +0000 (20:05 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sat, 10 Jan 2026 02:32:55 +0000 (18:32 -0800)
commit44af34bde7db9430b31a5891c3d1e6d34fefae76
tree9acc20ba016359e7e17a917ae376294e8d7942e0
parent2cba5746c03f85fedd45a08b4f91921c5960bb36
mingw: special-case index entries for symlinks with buggy size

In https://github.com/git-for-windows/git/pull/2637, we fixed a bug
where symbolic links' target path sizes were recorded incorrectly in the
index. The downside of this fix was that every user with tracked
symbolic links in their checkouts would see them as modified in `git
status`, but not in `git diff`, and only a `git add <path>` (or `git add
-u`) would "fix" this.

Let's do better than that: we can detect that situation and simply
pretend that a symbolic link with a known bad size (or a size that just
happens to be that bad size, a _very_ unlikely scenario because it would
overflow our buffers due to the trailing NUL byte) means that it needs
to be re-checked as if we had just checked it out.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
read-cache.c