[windows] bpo-27425: Be more explicit in .gitattributes#840
[windows] bpo-27425: Be more explicit in .gitattributes#840zware merged 3 commits intopython:masterfrom
Conversation
.gitattributes
Outdated
There was a problem hiding this comment.
Why the text attribute is unset? Third party code shouldn't be edited, but it can be read as a text.
There was a problem hiding this comment.
To avoid EOL conversion on code that's not ours. There's one file in particular in zlib that caused issues when @doko42 updated our copy of zlib before the GitHub migration; I'm frankly not sure why it's not causing issues currently.
There was a problem hiding this comment.
This is not the only foreign code. libffi, libmpdec, blake2b, Keccak. The only file with non-LF line ending in zlib/ is zlib.map.
.gitattributes
Outdated
There was a problem hiding this comment.
Shouldn't the text attribute be set if use the eol attribute?
There was a problem hiding this comment.
tbh even if I use Windows I still perfer LF over CRLF for endlines. Although I use Notepad++, I would have liked if Windows notepad was to show files with LF line endings just like it would with files with CRLF. However it does not in Windows 7 all the way up to Windows 10 and it annoys me forcing me to use Notepad++ to begin with although with Notepad++ I also get syntax highlighting that Windows Notepad also does not have. Although even then I like LF more because it can safe a little bit more space than CRLF(\r\n) would.
Be nice if there was an Windows update for Windows 7 and newer that would patch Windows Notepad to allow proper and easily read files with LF as if it was in CRLF.
Anyways @zooba mind forwarding my Windows Notepad issues to the proper team to patch it on Windows 7 SP1 and newer for me please?
There was a problem hiding this comment.
@serhiy-storchaka According to the gitattributes docs:
eol
This attribute sets a specific line-ending style to be used in the working directory. It enables end-of-line conversion without any content checks, effectively setting the text attribute.
@AraHaan This is not the place to discuss well-known issues with Notepad. It is also not the place to ask personal favors of anybody.
There was a problem hiding this comment.
All examples in the gitattributes docs use eol only together with text.
Lib/venv/scripts/nt/activate.bat
Outdated
There was a problem hiding this comment.
Is this the debugging artifact?
There was a problem hiding this comment.
Apparently so, good catch!
.gitattributes
Outdated
There was a problem hiding this comment.
As best I can tell, -text in .gitattributes just means "don't change the end-of-line character used in this file regardless of settings like core.autocrlf or core.eol". Editing the file and running git diff still results in a readable diff (preventing that is controlled by -diff, which is included in the binary macro).
There was a problem hiding this comment.
*.decTest files are read in test_decimal.py as text files. No need to prevent changing the end-of-line character.
There was a problem hiding this comment.
But they are imported from elsewhere, and it would be good to keep them the same as they were imported. @skrah may have an opinion on this.
There was a problem hiding this comment.
Most of them are imported from http://speleotrove.com/decimal/dectest.html (dectest.zip).
I agree with Zachary.
There was a problem hiding this comment.
Should they be converted to CRLF line ending as in decTest.zip?
There was a problem hiding this comment.
Which ones? I just opened Lib/test/decimaltestdata/ddInvert.decTest and it's DOS as expected.
There was a problem hiding this comment.
I just opened the first file abs.decTest and it has LF line ending.
There was a problem hiding this comment.
Okay, then it would be reasonable to convert all files that are also in decTest.zip to CRLF.
There was a problem hiding this comment.
Conversion of course not necessarily as part of this issue, unless someone has the patience to do that. ;)
serhiy-storchaka
left a comment
There was a problem hiding this comment.
LGTM, but I would prefer to add explicit text if eof= is used (official .gitattributes examples add it). And either remove zlib and expat or add other third party code directories.
7841d57 to
c74bc40
Compare
c74bc40 to
1e61282
Compare
Also fixed a few more line endings that were missed in GH-840, which were causing failure.
This is largely a direct conversion of .hgeol, assuming I understand the rules of .gitattributes correctly. I also went through and made sure there were actually examples of each entry checked in.
A big difference here is that some of the test files (in test_email, xmltestdata, etc) are no longer marked as
binarybut rather just-textwhich should mean that they are not subject to EOL conversion, butgit diffprovides a nice text diff including line ending changes.It also expands on .hgeol a bit, with a few more Windows-specific files marked as CRLF.