2013-05-22 2 views
3

팀은 버전 제어 시스템으로 서브 버전을 사용하고 있습니다. 나는 사랑한다. 그래서 나는 git-svn으로 복제했다.svn에서 체크 아웃하고 git-svn이 커밋 한 파일의 행 결말

autocrlf 설정 :

$ git config core.autocrlf 
true 

그래서 저에 의해 변경된 파일이 선이 끝나는 것으로 LF있을 것이다.

SVN을 사용하여 다른 멤버가 파일을 체크 아웃하면 Windows에서도 LF가 줄 끝으로 표시됩니다.

autocrlf를 false로 설정하면 문제를 해결할 수 있습니다. git이 CRLF를 LF로 변경하지 않도록 지시합니다.

Subversion 클라이언트를 구성하여 문제를 해결할 수 있습니까?

답변

1

Subversion과 자식 모두 CRLF 변환 설정이 있습니다. 그들은 무엇이든 설정할 수 있지만 일관되게 설정해야합니다. 이 경우 프로젝트에서 비표준 도구를 사용하기 때문에 다른 팀 구성원에게 문제가 발생하지 않도록해야합니다. 설정이 Subversion에서 활성화되어 있지 않은 것으로 보입니다 (따라서 속성으로 설정되어 저장소에 기록됩니다). core.autocrlf 이제을 해제하고 엉망인 모든 파일을 원래 형식으로 다시 변환하십시오!

개인적으로 나는 autocrlf를 켜는 것을 결코 고려하지 않았습니다. 나는 비슷한 상황에 있고 내 경험에 의하면 모든 시스템에서 특정 형식이어야하는 파일이 있습니다. 쉘 스크립트 (cygwin은 unix 형식을 예상) 및 MSBuild 프로젝트 (Windows 형식이어야 함)와 C++, Java, python, perl 및 기타 소스와 같은 형식으로 남겨 둘 수있는 파일을 포함합니다. 따라서 CRLF 변환을 설정하여 모든 예외에 대해 알려야 할 필요가있을 때 필요로하는 것을 수행하는 데는 약간의 문제가 있습니다. 또한 도움이되는 것은 거의 없습니다 (단, 일반 메모장에서 편집하려고하지 않으면 대부분의

+0

네, 맞습니다. 나는 그 질문을하기 전에 그것을 껐다. 그리고 나는 그것을 프로젝트에서 거짓으로 유지할 것이다. – leoleozhu

1

svn eol 속성이 'native'로 설정된 경우 파일은 항상 플랫폼에 적합한 EOL로 체크 아웃됩니다. 예를 들어 Windows에서의 체크 아웃은 저장소에 저장된 실제 줄 끝과 관계없이 CR-LF를가집니다. 우리는 이것을 몇 년 동안 크로스 플랫폼 개발에 사용 해왔다.

+0

예, 크로스 플랫폼 프로젝트에서 svn을 사용하는 방법에 대해 옳습니다. 필자의 경우 Windows 프로젝트이므로 autocrlf를 false로 설정합니다. – leoleozhu

관련 문제