2010-07-14 4 views
1

문제왜 CVS에 체크인 된 파일이 이중 간격으로 나타 납니까? 같은 파일을 체크하기 위해 CVS를 사용하는 경우

자주 (하지만 때마다) : .java, .cs, .xml, 등, 파일의 모든 행은 캐리지 리턴됩니다이다.

예 :

// Begin file 

    class Foo 

    { 

     public Foo() 

     { 

     // Do step 1 

     // Do step 2 

     } 

    } 

// End file 

:

// Begin file 
    class Foo 
    { 
     public Foo() 
     { 
     // Do step 1 
     // Do step 2 
     } 
    } 
// End file 

파일 팀 구성원에 의해 체크 아웃 :

파일 체크인 팀 구성원에 의해 전 개발 환경

  • NetBeans 6.8 및 6.9 (6.8을 사용할 때도 문제가 발생 함).
  • Visual Studio 2008 및 2010.
  • 리포지토리 : CVS; 체크 인 및 체크 아웃은 Cygwin bash 쉘에서 수행됩니다.
  • 운영 체제 : Widows XP Professional.

내가 값을 변경하려고

내가 봤어 무엇 : 체크인시이 유닉스/윈도우 번역 문제가 어떤 종류의 원인이 될 수있다 생각하고, 도구 -> 옵션에서 build.compiler.emacs=true 넷빈즈 내를? 이것은 아무런 효과가 없었다.

이 문제의 원인이 될 수있는 Windows/IDE/Cygwin 스택의 CVS를 검사 할 때 파일에 어떤 문제가 있습니까? 당신의 도움에 대한

감사합니다,

-bn

+0

FTP를 사용하여 C 파일을 업로드 할 때 ASCII 대신 Binary를 사용하여 업로드 할 때이 현상이 발생했습니다 - 상황에 맞게 구성 가능한 옵션입니까? – danjah

+0

라인 엔딩 인 것 같습니다. Windows는 \ r \ n 여기서 유닉스는 단지 하나만 (일반적으로)합니다. 그래서 유닉스는 하나의 윈도우 라인 엔딩을 2로 변환하고있다. 그것은 프로세스의 어느 부분이 그것을하고 있는지 전혀 모른다. 메모장 + +를 사용하여 Windows에서 줄 끝을 변환하고 16 진수 편집기 (NPP에는 16 진수 편집기가 있음)를 사용하여 볼 수 있습니다. – DaveShaw

+0

표준 유닉스 줄 끝 문자는 '\ n'입니다. 표준 Windows 줄 끝 문자는 '\ r'다음에 '\ n'이옵니다. 모든 것이 C에서 텍스트 모드로 처리된다면 (그리고 CVS는 C로 쓰여집니다), 이것은 중요하지 않습니다. 텍스트 파일이 바이너리 모드로 처리되고 Unix와 Windows 구성 요소가 모두 있으면 문제가 발생할 수 있습니다. –

답변

3

뭔가 유닉스 줄 바꿈 (단지 LF)의 쌍 DOS의 줄 바꿈 (CR LF)을 변환한다. 개인적으로 CVS가되기를 바랄 것입니다. Cygwin CVS 대신 TortoiseCVS를 사용해 볼 수도 있습니다.

1

Windwos 네이티브 CVS 클라이언트는 파일을 서버에 제출할 때 텍스트 파일 (\ r \ n)의 MS-DOS 라인 끝을 Unix 스타일의 줄 끝으로 변환하여 저장소에 'canonical'형태로 유지되고 \n은 줄 끝을 나타낸다. 윈도우 네이티브 클라이언트는 서버에서 파일을 가져올 때 라인 끝을 변환합니다.

그러나 저는 Cygwin CVS 클라이언트가 유닉스 클라이언트처럼 행동하고 라인 변환이 필요 없다고 생각합니다. 따라서 해당 클라이언트를 사용하여 MS-DOS 스타일의 끝 (\ r \ n)으로 파일을 체크인하면 이러한 종류의 혼란을 경험할 수 있습니다.

Cygwin 클라이언트를 사용하는 사람들이 파일을 MS-DOS 스타일 줄 끝 (또는 뭔가)으로 변환하는 도구를 사용하고있는 것처럼 보입니다.윈도우 네이티브 클라이언트가 Cygwin에서 쉘이 활성화 된 경우에도 사용할 수 있도록

잠재적 인 수정은 Cygwin에서 CVS 클라이언트를 제거하고 윈도우/Cygwin에서 상자에 WinCVS를 클라이언트를 설치하는 것입니다 :

Cygwin을 특정 모드로 마운트 할 수있는 또 다른 가능성은 있습니다 (Cygwin에서이 기능이 얼마나 잘 작동하는지 또는 otehr 문제를 일으키는 지 알기에 Cygwin에 익숙하지 않습니다. 오랜 시간이 걸렸습니다. Cygwin을 사용하여 시도) :

,는
1

난 그냥 우연히 또 다른 가능성 - 파일이 ASCII/텍스트로 CVS에서 유니 코드 형식으로 저장하지만 저장된 경우, 여분의 줄 끝이 추가됩니다.

관련 문제