Laura Kassovic
06/09/2026, 3:41 AMDidier Villevalois
06/09/2026, 7:26 AM.bat. That seems useless and archaic to me as nowadays developers on Windows use WSL anyway.Sergej Koščejev
06/09/2026, 8:05 AMSindre Moen
06/09/2026, 1:29 PMjj care?Scott Palmer
06/09/2026, 1:54 PMjj gets support for hooks, that is where I would handle this. For now, one possible "fix" for a jj environment is to actually configure a "fix tool" that runs on *.bat files and repairs the line endings.
The wrapper .bat file does way too much work anyway. It should have one line:
java -jar ./gradle/wrapper/gradle-wrapper.jar %*
Then you don't have a goto problem.Octavia Togami
06/09/2026, 4:26 PMjj cares regardless of where the file comes from, because it doesn't apply the transformation git does to store LF "internally" (i.e., in the .git structure); so the CRLF form on disk always appears as changed from the LF form that is part of commits, on every platform (since the CRLF form is checked out everywhere).
Re: "The entire idea of secretly storing a modified version of the file contents seems like something a VCS simply shouldn't do."; it's not exactly secret because we explicitly ask for it in .gitattributes.
I do think that adding a hook of some kind could be good, but the issue is enforcement across all users who would commit. The gradlew.bat is maybe not the best example here because it's not expected that you manually edit it, but I have used .gitattributes in other cases to guard against CRLF being committed in all other files. This is something you can guard against using CI, but it's a lot easier if you can just set something in your repository and it automatically works for all users. It means every repo doesn't need to have CI or tell you how to setup hooks. For simple projects I think that is valuable.Ryan Schmitt
06/16/2026, 2:45 PMRyan Schmitt
06/16/2026, 2:50 PMRyan Schmitt
06/16/2026, 2:51 PM.cmd or even a .ps1 but I'm not sure what portability/compatibility implications this would haveSergej Koščejev
06/16/2026, 2:56 PM