Web IDE displays "LF" line ending when file is "CRLF"
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Summary
The Web IDE displays files with CRLF endings as though they are LF. With terraform projects it does not matter for MOST files. However, when a terraform provider enables pushing the file to a client, some parts of Windows may be sensitive to line endings - notably PowerShell, which is used as a Windows automation language.
I am seeing some evidence it may also be using UTF-16 encoding rather than the UTF-8 indicated in the UI.
Steps to reproduce
- Create or change a file to CRLF file endings. Change can be done by clicking line ending type in the status bar.
- Notice that saving the file causes a commit to be necessary (git detected the diff)
- Ensure .gitattributes forces the file type to "CRLF" on checkout with
*.ps1 text eol=crlf
- optionally force a workspace setting for vs code for new files in the project
{
"files.eol": "\r\n"
}
- Commit the file - the character display at the bottom of the screen changes from CRLF to LF
- Check the file out on another machine
- Use cat -ve to see that the file is actually "CRLF" (ends of lines contain "M" rather than just "").
Example Project
What is the current bug behavior?
Web IDE always reverts to displaying "LF" line ending, even for files saved with "CRLF"
What is the expected correct behavior?
Web IDE correctly reads and displays actual line endings.
Relevant logs and/or screenshots
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)