janhoy opened a new pull request, #5327:
URL: https://github.com/apache/solr/pull/5327

   🤖 Found and diagnosed by Claude Code, while investigating a Windows CI 
failure on #5323.
   
   Nothing under `ui/` carries a `text` attribute, so line-ending handling 
there falls back to whatever `core.autocrlf` the checkout happens to use. Git 
for Windows sets it to `true` in its system config, so a Windows checkout 
writes CRLF while the blobs stay LF. `:checkWorkingCopyClean` is backed by 
JGit, which only content-checks an entry once its cached stat stops matching — 
and when it does, the `text` attribute, not `core.autocrlf`, selects the 
check-in filter. With no attribute, no normalisation happens and all 232 text 
files under `ui/` come back `(modified)`.
   
   `solr/.gitattributes` has declared `* text=auto` for years, which is exactly 
why nothing under `solr/` is affected. This gives `ui/` the same policy.
   
   Content-neutral: every file under `ui/` is already `i/lf w/lf`, so nothing 
renormalises.
   
   ### How it was verified
   
   On a Windows 11 VM, with a CI-shaped checkout (shallow fetch of a PR merge 
ref + `git checkout --force`) and a standalone JGit 7.7.1 probe matching the 
version `git-status.gradle` uses:
   
   | JGit `core.autocrlf` | `ui/` stat cache | `ui/.gitattributes` | modified |
   | --- | --- | --- | --- |
   | TRUE | intact | — | 0 |
   | FALSE | intact | — | 0 |
   | FALSE | invalidated | — | **232 ui + 1005 changelog** |
   | TRUE | invalidated | — | 0 |
   | FALSE | invalidated | `* text=auto` | **0 ui** (1005 changelog remain) |
   
   The 232 matches the CI failure exactly.
   
   ### Worth knowing
   
   - This is pre-existing and unrelated to #5323. The Windows job that exposed 
it is the first Gradle-on-Windows CI job in the repo, so this check had simply 
never run on Windows before.
   - The same gap still covers roughly 1200 other attribute-less tracked paths, 
`changelog/` chief among them. A repo-wide policy would close the class, but it 
needs `eol=lf` guards for extension-less shell scripts like `gradlew`, so it is 
a larger change and deserves its own issue.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to