1.1. CVS란 무엇인가?
프로젝트를 여러 명이 진행하게 되면, 소스 파일의 변경 사항을 적절히 관리해 충돌을 방지하고 변경 이력을 추적하는 것이 중요하다. CVS는 소스 파일을 관리하는 데 널리 사용되는 시스템이다. 로컬 공유 디렉터리 뿐 만 아니라 인터넷을 통한 소스 코드 공유 및 관리가 가능하다. 또한, 한 파일에 대한 동시 작업이 허용되어 병렬 개발이 가능하다.
1.2. 저장소 설정하기
일단 CVS를 사용하기위해 저장소를 설정해야 한다. 저장소의 위치는 계정 홈 디렉터리 하위의 CVS로 설정하였다. 즉, 절대경로 /home/unga10/CVS 이다.
cvs를 호출해 작업을 할 때마다 항상 -d 옵션으로 저장소를 지정해야 한다. 만약 -d 옵션이 없다면 cvs는 환경 변수 CVSROOT를 검색한다. 따라서 다음이 환경 변수를 설정하면 -d 옵션을 생략할 수 있다.
이제 프로젝트를 저장소 안으로 복사해야 한다. CVS에서 프로젝트는 관련 파일과 디렉터리의 모음이다. 저장소 하위에 test라는 경로에 모든 내용을 복사했다.
제대로 저장소에 들어갔는지 확인하기 위해, 다른 경로로 가서 CVS로부터 코드를 얻어온다.
hello.c에 printf(“Have a nice day\n"); 한 줄을 추가한 뒤 cvs를 통해 바뀐 내용을 확인해 보도록 하겠다.
이제 commit을 통해 바뀐 소스를 저장소에 업데이트 할 수 있다. commit을 수행하면 로그 메시지를 입력하도록 편집기가 나온다. 로그 메시지를 입력하지 않고 그냥 편집기를 종료했더니 경고 메시지가 출력되어 무시하고 계속 진행했다.
rdiff를 이용해 버전 이력을 추적할 수 있다. 앞선 커밋을 통해 버전 1.1에서 1.2로 변했으므로 1.1 이후의 변경 사항을 알아보도록 하겠다.
<네트워크로 CVS 액세스하기>
환경 변수 CVSROOT의 값을 :<서버명>:<아이디@서버주소>:/<CVS 상대경로>로 설정한 후 cvs login을 수행하고 패스워드를 입력하면 원격 저장소에 접속된다. 모든 명령은 로컬에서와 동일하나 -z3 옵션으로 코드 송수신시 압축을 수행할 수 있다.
inetd을 통해 CVS 서버를 열 수도 있다.