engineering/System Eng.2007. 2. 22. 14:47
1. CVS(Current Version System)

1.1. CVS란 무엇인가?

프로젝트를 여러 명이 진행하게 되면, 소스 파일의 변경 사항을 적절히 관리해 충돌을 방지하고 변경 이력을 추적하는 것이 중요하다. CVS는 소스 파일을 관리하는 데 널리 사용되는 시스템이다. 로컬 공유 디렉터리 뿐 만 아니라 인터넷을 통한 소스 코드 공유 및 관리가 가능하다. 또한, 한 파일에 대한 동시 작업이 허용되어 병렬 개발이 가능하다.


1.2. 저장소 설정하기

일단 CVS를 사용하기위해 저장소를 설정해야 한다. 저장소의 위치는 계정 홈 디렉터리 하위의 CVS로 설정하였다. 즉, 절대경로 /home/unga10/CVS 이다.

사용자 삽입 이미지
<저장소 위치 설정>

cvs를 호출해 작업을 할 때마다 항상 -d 옵션으로 저장소를 지정해야 한다. 만약 -d 옵션이 없다면 cvs는 환경 변수 CVSROOT를 검색한다. 따라서 다음이 환경 변수를 설정하면 -d 옵션을 생략할 수 있다.

사용자 삽입 이미지

<환경 변수 설정>

이제 프로젝트를 저장소 안으로 복사해야 한다. CVS에서 프로젝트는 관련 파일과 디렉터리의 모음이다. 저장소 하위에 test라는 경로에 모든 내용을 복사했다.

사용자 삽입 이미지

<저장소로 현대 폴더의 모든 내용을 복사함>

제대로 저장소에 들어갔는지 확인하기 위해, 다른 경로로 가서 CVS로부터 코드를 얻어온다.

사용자 삽입 이미지

<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 서버를 열 수도 있다.

Posted by theYoungman