简体   繁体   中英

How can I disable diff in line separators in IntelliJ IDEA?

I'm using Intellij IDEA 14 on Windows and Git as VCS on Unix server. The line separator in Windows is CLRF ( \r\n ) and LF ( \n ) in Unix. In Git, I'm using config --global core.autocrlf input . This will translate all CRLF's to LF's upon commit.

When I'm using "Reformat code" option on well-formatted file, IDEA marks files as changed and shows diff in line separators only.

在更改的文件上单击鼠标右键 -> Git -> 与最新存储库版本比较

How can I disable that in IDEA?

在窗口的右下角,将[CRLF]更改为[LF]

I'm also developing on windows and Because our servers are powered by Linux and all the code has to base on Linux I have preferred to change all my files to LF instead of CRLF.

from git command line:

git config --global core.autocrlf false

i'm working with intellij idea so it's quite easy:

1) File --> settings --> editor --> code style: (for any new file will be created)

a. Scheme : default

b.Line separator: unix and os x (\\n)

2) mark the root of the project --> file --> line separator --> LF unix and os x (\\n) (for exist files)

Remark: you can also use apps like dos2unix.exe or some other scripts.

than I did using my command line: (you can do this also from the idea)

git commit -m "bla bla"
git add .
git push origin master

since then, I didn't got those warnings

If you came to this thread like me seeking an answer as to why your unit test (JUnit) fails on comparing generated JSON (or any other structure that contains line separators) with one written by hand, you should replace \\n by \\r\\n (for Windows) in your string. The instructions given above don't work for this case.

UPD.

In Intellij 17.3, you can select in the "Compare by" combobox in the compare window whether you want to compare 'Binary content' or 'Text'. In the second case CRLF and LF are not shown as "different".

Create parser.py in the same dir. Change the name and run. Enjoy))

 with open('./file_to_fix.py', 'r') as f: a = f.read() with open('./file_to_fix.py', 'w') as f: # for i in a.split('\\r\\n'): # f.write(i) aa = a.replace('\\r\\n', '\\n') f.write(aa)

select folder -> File -> File Properties -> Line Separator -> LF

All files will be markd as changed .

Make regular commit with line separator changes ounly. It will fail but changed marks will disappear.

New files will inherit folder property.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM