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]
