PragmaticVersionControlWithCVS/HowTo PragmaticVersionControlWithCVS/CommonCVSCommands

1. Accessing the Repository

CVS시스템이 저장소에 접근하는 방식은 다양하다. 이중 pserver, external 두가지 방법이 대부분사용된다.
pserver 는 기존의 telnet, ftp 데몬과 같이 서버상에 프로세스를 돌려서 접속을 담당하는 방식이다.
  • 설정용이
  • read only 사용자 가능
  • 익명 접근 지원
  • 고유의 네트워크 포트이용, 방화벽설정 필요
  • 내용전송에서 암호화 미사용
  • 사용자 관리가 이중적으로 필요하다.
external(이하 ext)는 cvs client <-> pipe or tunnel <-> cvs server 의 형태로 이루어지는 접근 방식이다. pipe 소프트웨어로는 ssh를 이용하는 것이 좋다.
  • ssh 터널을 이용하는 것을 추천. (내부 혹은 외부 모두)
  • 익명접근이 필요할 경우 pserver
  • 정기적인 외부접근이 필요할 경우 ssh tunneling

1.1. Security and User Accounts

ssh모드
이미 존재하는 user id 이용. (다른 말로 cvs 사용자는 그 서버에 사용자 id가 필요하다)
pserver모드
시스템 사용자로 설정도 가능. cvs 만의 사용자 계정도 가능
cvs 를 하나의 사용자 id 만 만들어서 운영하는 것도 물론 가능하지만, 이럴경우 수정이 어떤 사용자에 의해서 이루어졌는지 확인이 안되기 때문에 cvs의 이점을 이용하지 못하는 것이다.
만약 사용자에게 개별 id를 부여한다면 각각의 저장소마다 서로다른 권한을 할당하는 것이 가능하다.

1.2. CVSROOT: The Destination Parameter String

저장소를 가리키는 양식은 다음과 같다.
~cpp :접근방법종류:사용자@서버:저장소위치
:pserver:sapius@sapius.dnip.net:/home/CVS
:ext:sapius@sapius.dnip.net:/home/CVS
로컬에서는
~cpp 
root@eunviho:~/tmp2# cvs -d /home/CVSHOME/ co sesame
cvs checkout: Updating sesame
U sesame/color.txt
U sesame/number.txt
상기와 마찬가지로 웹상에서 원격에 존재한는 파일을 checkout하는 것은 위의 저장소를 나타내느 표기법을 이용하면 된다.
~cpp 
root@zeropage:~/tmp# cvs -d :ext:sapius@sapius.dnip.net:/home/CVSHOME co sesame
sapius@sapius.dnip.net's password: [암호입력]
cvs checkout: Updating sesame
U sesame/color.txt
U sesame/number.txt
이때 매번 이런식으로 저장소를 기억해서 타이핑하는 것은 상당히 귀찮은 일이므로, 환경변수로 CVSROOT에 저장소를 설정하면 간편하게 사용할 수 있다. (cvs는 자동으로 CVSROOT에 설정된 저장소를 찾기때문임)
또한 CVS_RSH 환경변수에 설정된 프로그램이 ext가 기본적으로 사용하는 연결프로그램이다. (대개 ssh)
~cpp 
root@zeropage:~/tmp# export CVSROOT=:ext:sapius@sapius.dnip.net:/home/CVSHOME
root@zeropage:~/tmp# cvs co sesame                                             
sapius@sapius.dnip.net's password: 
cvs checkout: Updating sesame
U sesame/color.txt
U sesame/number.txt
만약 운영체제의 콘솔이 bash 가 아니라 csh 라면 export 가 아닌 setenv 를 사용하면 된다.

1.3. Setting up ssh Access

ssh를 pipe 연결로 사용하기 위해서는 저장소 서버와 로컬 클라이언트가 모두 ssH프로토콜을 이용할 수있도록 해야한다. 이를 위해서 linux 에서는 ssh.com or openssh등을 대안으로 사용하는 것이 가능하다.
~cpp 
root@zeropage:~/tmp# ssh sapius@sapius.dnip.net
sapius@sapius.dnip.net's password: 

or

root@zeropage:~/tmp# ssh sapius.dnip.net -l sapius
sapius@sapius.dnip.net's password: 

그리고 cvs가 사용할 저장소와 파이프 프로그래을 환경변수로 설정해서 cvs에 알리면 된다.
~cpp 
root@zeropage:~#export CVSROOT=:ext:sapius@sapius.dnip.net:/home/CVSHOME
root@zeropage:~#export CVS_RSH=ssh

1.4. Connecting Using pserver

pserver 모드에서는 CVS_RSH를 설정하지 않아도 무관하다.
~cpp 
root@zeropage:~#export CVSROOT=:pserver:sapius@sapius.dnip.net:/home/CVSHOME
pserver 모드를 이용하기 위해서는 cvs로 명령을 입력하기 이전에 먼저 대상서버에 접속을 해야한다.
~cpp 
root@zeropage:~# cvs login
Logging in to :pserver:sapius@sapius.dnip.net:2401/home/CVSHOME
CVS password: [암호입력]
작업이 끝난뒤에는 logout을 이용해서 cvs가 비밀번호를 저장하지 않도록 한다.
대체로 pserver 보다는 보안에 적합한 external 을 이용하는 것이 좋다.

DeleteMe) 상협이 서버 설치하는 것 때문에 한 3일간 놀았더니.. -_-;; 내용이 새롭다.ㅎㅎ - eternalbleu
----
PragmaticVersionControlWithCVS
Retrieved from http://wiki.zeropage.org/wiki.php/PragmaticVersionControlWithCVS/AccessingTheRepository
last modified 2021-02-07 05:24:01