2010-07-21 3 views
2

나는 Windows XP 시스템에있어, 나는 명령 행에서이 명령을 실행 :어떻게 'cvs logout'이 작동하지 않습니까?

cvs -d :pserver:[email protected]/RepositoryName login -p <pw> 

이 응답 생성 : 다음 입력하면

Logging in to :pserver:[email protected]:2401:/RepositoryName 

을 :

cvs logout 

이 메시지가 나타납니다 :

cvs logout: bad CVSROOT - Cannot specify port: ":pserver:[email protected]:2401/RepositoryName" 

PC를 재부팅해도 도움이되지 않았습니다. 나는 어떻게이 국가에 들어갔고, 어떻게 벗어날 수 있습니까? 당신이 logout 명령에 대한 CVSROOT (즉 -d 옵션)를 지정하지 않은 것처럼

+1

어떤 CVS 클라이언트 (및 어떤 버전)를 사용하고 있습니까? CVSROOT에 기본 포트를 잘못 추가 한 것처럼 보입니다. – mwalker

답변

3

, CVS는 하나 이미 작업 사본 (즉 ./CVS/Root 파일) 체크 아웃 환경 블록에서 또는의 메타 데이터에서이를 얻을 수 있습니다. 환경 변수를 통해 CVSROOT을 지정하고 두 번째 콜론 (즉, 포트 번호 뒤에있는 콜론)을 잊어 버렸습니까? 또한 포트 2401을 명시 적으로 지정하는 것은 이미 :pserver:의 기본 포트이므로 필요하지 않습니다. (예에서 login 명령을 실행할 때 실제로 포트를 지정하지 않았습니다.)

어쨌든 logout은 지정된 CVSROOT가 로그인에 사용 된 것과 일치 할 때만 작동합니다.

마지막으로 loginlogout은 "세션"을 구분하지 않습니다. CVS는 세션리스 프로토콜을 사용합니다. login 명령이 실제로하는 일은 로컬에 암호를 저장하는 것이므로 모든 명령에 대해 암호를 다시 입력 할 필요가 없습니다 (CVS는 매번 캐시에서이를 암시 적으로 읽습니다). Logout은 캐시에서 암호를 다시 제거하므로 다음에 명령을 실행할 때 암호를 다시 입력해야합니다.

+0

당신은 확실히 맞습니다. CVSROOT에 두 번째 콜론이 없습니다. 나는 포트를 전혀 지정하지 않고 cvs 로그 아웃이 더 이상 불평하지 않도록 조정했다. 나는 전에 TortoiseCVS를 사용하기 때문에 cvs 로그 아웃을 할 필요가 없었지만 어제 명령 줄에서 놀고 있었고 나의 질문에서 언급 된 이상한 행동을 발견했습니다. 많은 감사합니다. –

관련 문제