dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.23k stars 4.45k forks source link

Ignore line endings when comparing AsnXml generated content #101657

Closed vcsjones closed 2 weeks ago

vcsjones commented 2 weeks ago

Some developers configure their git to check out files as LF instead of CRLF on Windows. That causes the diff detection for the AsnXml target to think the generator produced a meaningful change, when it really didn't. There unfortunately is not a good way to fix this in .gitattributes if the developer really insists that the line endings are LF on Windows, e.g:

git config --global core.autocrlf input
git config --global core.eol lf

We can't tell .gitattributes "No really, you definitely want to check these files out as CRLF on Windows and LF everywhere else".

Instead, we can just ignore the line endings for comparison sake. I could not figure out a way to do this in MSBuild, so I added a small C# task. I feel like this should be doable with <ReadLinesFromFile /> and comparing the Lines output, but I couldn't quite get that to work.

Fixes #101651

dotnet-policy-service[bot] commented 2 weeks ago

Tagging subscribers to this area: @dotnet/area-system-security, @bartonjs, @vcsjones See info in area-owners.md if you want to be subscribed.