Are you doing anything more than calling dos2unix?
Why would you use LF if the focus of the application that you develop is Windows? You make the life harder for these users. :-)
Seriously: your argument typically comes from developers who consider GNU/Linux as a first-class citizen as a development or deployment platform, and Windows only as a second-class citizen (assuming that a Windows port actually exists).
I can accept an argument like "I, as a developer, don't care about Windows and its users, so all my source code is in UNIX format." This is a conscious, though quite political decision.
But an argument like "not using LF makes lifes harder" without a relativization on which premises this claim is build (such as "GNU/Linux and macOS users are much more important for as, and if there exist any users or developers who use Windows, we consider them to be undesired, because they make everybody's lifes harder") is intellectual ignorance.
If you develop on windows and only for windows, use CRLF all the way. Just do NOT forget to set .gitattributed correctly, and you are set.
With ReactOS, there even exists a flavor that is not developed by Microsoft. If you consider Wine and its derivates as an implementation of the WinAPI, you have one additional (or multiple if you consider their derivates) implementation of the WinAPI.
Even if you only consider the flavours of Microsoft Windows that are full operating systems, you immediately get multiple ones:
- the discontinued Win 9x series
- the discontinued Windows CE, Windows Embedded CE, Windows Embedded Compact, Windows Mobile, Windows Pocket series (technically quite different from both Windows 9x and Windows NT)
- Lots of variants (indirectly) derived from Windows NT:
* Windows (desktop OS)
* Windows Server
* Windows IoT (I would claim that at least for the Windows 10 IoT Core version, the user experience is quite different from both desktop and server Windows)
* Windows PE [1]
* Further discontinued variants such as Windows Phone
[1] https://en.wikipedia.org/wiki/Windows_Preinstallation_Enviro...
I never touched ReactOS, but I suspect is modern enough to handle LF only too. It was targeting Win2003 AFAIR.
So yeah, I stand corrected abit. If you develop only for windows (especially legacy), use CRLF. Anything w/ portability in mind, go for LF only...
The confusion about "LF" (Unix) vs "CR" (Apple) vs "CR/LF" (MS/DOS & Windows) is because we didn't have an explicit "Line End" character in 7-bit ASCII.
There was "EOT" (Ctrl-D/ASCII 4/EOF in Unix) , "ETX" (Ctrl-C/ASCII 3), and other characters that were used to mean other I/O, including ones that didn't match the ASCII definition like Ctrl-S/Ctrl-Q to stop/start I/O, and Ctrl-Z to mean EOF (MS/DOS & Windows).
Hopefully nobody is using it for documents, but most text-based internet protocols, including SMTP and HTTP, use CRLF for line endings.