[windows] bpo-27425: Be more explicit in .gitattributes #840
Conversation
.gitattributes
Outdated
| Lib/test/coding20731.py -text | ||
|
|
||
| # Third party code | ||
| Modules/zlib/** -text |
Why the text attribute is unset? Third party code shouldn't be edited, but it can be read as a text.
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.
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
| Modules/zlib/** -text | ||
| Modules/expat/** -text | ||
|
|
||
| # CRLF files |
Shouldn't the text attribute be set if use the eol attribute?
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?
@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.
All examples in the gitattributes docs use eol only together with text.
Lib/venv/scripts/nt/activate.bat
Outdated
| set "PATH=%VIRTUAL_ENV%\__VENV_BIN_NAME__;%PATH%" | ||
|
|
||
| :END | ||
| echo test |
Is this the debugging artifact?
Apparently so, good catch!
|
|
||
| # Text files that should not be subject to eol conversion | ||
| Lib/test/cjkencodings/* -text | ||
| Lib/test/decimaltestdata/*.decTest -text |
They are text files.
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).
*.decTest files are read in test_decimal.py as text files. No need to prevent changing the end-of-line character.
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.
Most of them are imported from http://speleotrove.com/decimal/dectest.html (dectest.zip).
I agree with Zachary.
Should they be converted to CRLF line ending as in decTest.zip?
Which ones? I just opened Lib/test/decimaltestdata/ddInvert.decTest and it's DOS as expected.
I just opened the first file abs.decTest and it has LF line ending.
Okay, then it would be reasonable to convert all files that are also in decTest.zip to CRLF.
Conversion of course not necessarily as part of this issue, unless someone has the patience to do that. ;)
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.
Also fixed a few more line endings that were missed in GH-840, which were causing failure.
Updates checked-in line endings on several files.
Also fixed a few more line endings that were missed in pythonGH-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.
The text was updated successfully, but these errors were encountered: