Visual Studio 2012

다음 파일의 줄 끝에 일관성이 없습니다. 줄 끝을 정규화시키시겠습니까?

Jundol 2015. 5. 13. 15:38



할일 없이 소스분석을 하던 도중 이런 메시지가 뜬다.

순간 뭐지.... 이생각이 제일 먼저 들었다.

예를 눌러야되나 아니오를 눌러야되나... 일단 예를 눌러보았다.

뭐 바뀌는건 없는 것같은데... 혹시 몰라서 SVN 상태를 보니 뭔가 바뀌었단다!

그래서 커밋되어있는 소스와 비교하려는데




잉?????????????????????????

텍스트는 같은데 바이너리가 다르다고????????????


일단 진정하고 정규화 warning 메시지부터 찾아보도록 하자


Error Message: The line endings in the following file are not consistent.


Cause:

This dialog box is not from SourceAnywhere Standalone. It is a Visual Studio warning. It occurs when the file you are loading contains a mix of Windows standard and non-standard line-endings.

Resolution:

You can ignore EndOfLine by disabling the Check for consistent line endings on loadoption in the Documents page (VS 2008 Tools->Options->Environment->Documents).

출처 :  http://kb.dynamsoft.com/questions/323/Error+Message%3A+The+line+endings+in+the+following+file+are+not+consistent.+


에러메시지에 대한 원인과 해결책을 나타내주고 있다.

해결 방법은 일단

도구 -> 옵션 -> 문서탭



로드할 때 줄 끝 일관성 검사 를 해제하면 된다고는 한다. 해제하니 다음 로드할때는 나타나지 않는다.

여기서 끝! 하면 너무 쉬워서

windows(CR LF) 에 대해서 검색해보았다.

새줄문자(줄바꿈문자 개행문자 등등 여러가지로 표현 되는 것 같다.)

CR : 캐리지 리턴(carriage return, CR, '\r', 0x0D) - 프린터에서 실제 인쇄를 수행하는 장치가 한 줄의 끝에서 시작 위치로 돌아가는 것을 뜻함.
LF : 라인피드 (line feed, LF, '\n', '0x0A') - 프린터에서 종이가 한 줄씩 인쇄되며 나오는 것을 뜻함.

ACSⅡ 시스템에서 새줄문자로 사용하였다고 한다. 


ACSⅡ의 새줄문자

 LF

 멀틱스, 유닉스, 리눅스, 제닉스, AIX, OS X, FreeBSD 

 CR + LF

 DEC TOPS-10, CP/M, MP/M, 도스, OS/2, 윈도, 심비안 OS, 팜 OS 

 CR

 콤모도어 8비트 머신, TRS-80, 애플 Ⅱ, 맥 OS(버전 9이하), OS-9 

 RS

 POSIX 이전의 QNX 


출처 : 위키피디아

http://ko.wikipedia.org/wiki/%EC%83%88%EC%A4%84_%EB%AC%B8%EC%9E%90



아마도 전임자 분께서 다른 운영체제에서 해당 소스파일을 개발하셨거나 중간에 누군가가 다른 운영체제에서 편집하고 커밋해놓은 것 같다.


스택오버플로우(http://stackoverflow.com/questions/5665217/do-i-want-normalized-line-endings)를 보니 정규화 다이얼로그 박스가 나올 경우 대부분의 정답은 "YES"를 누르는게 맞다고 하니 정규화 시키는게 좋다는 것 같다.