두 명 이상이 참여하는 프로젝트를 진행하고 있다면, 소스 파일의 변경 사항을 적절히 관리하여 변경 사항이 충돌하는 것을 방지하고 지금까지의 변경 사항을 추적하는 것이 중요하다. 소스 파일을 관리하는 데 널리 사용되는 세 가지 시스템은 RCS(Revision Control System), CVS(Current Version System), SCCS(Source Code Control System)이다.
여기에서는 RCS에 관해 간략하게 설명한다.
1.1.1. RCS
RCS는 소스 파일을 관리하는 여러 명령으로 구성되어 있다. 한 파일의 변경 사항을 하나의 파일로 관리하는 방식으로 소스 파일의 변경을 사항을 추적한다.
1.1.1.1. rcs 명령
rsc -i <filename>의 형식으로 명령을 내리면, 파일을 관리하기 위한 초기화 작업이 수행된다. 관리 파일이 생성되는데 원 파일 명 뒤에 ,v가 추가된 형태이다. RCS라는 하위 디렉터리를 만들어두면 관리 파일은 자동으로 이 디렉터리에 저장된다.
1.1.1.2. ci 명령
현재 버전을 저장하는 ci 명령을 사용해 파일을 Check In 할 수 있다. ci <filename>의 형식으로 명령을 내리면 원래 파일은 지워지고 모든 내용과 제어 정보가 RCS파일인 “filename,v” 파일에 들어가게 된다.
1.1.1.3. co 명령
파일을 변경하려면 파일을 Check Out 해야 한다. co -l <filename>을 호출하면 디렉터리에 filename파일이 생기며 CVS 파일은 잠기게 된다. 따라서 다른 사용자가 동시에 파일을 수정하는 것을 방지한다. 수정 후에는 ci를 이용해 다시 Check In 해야 한다. ci -l <filename>의 형식으로 호출하면, 파일을 CVS에 넣고 자동으로 체크아웃 되면서 CVS가 잠긴다. 즉, co -l <filename>을 호출하는 것과 같은 효과가 있다.
1.1.1.4. rolg 명령
rolg <filename> 명령으로 파일의 변경 내역을 볼 수 있다. 파일의 첫 번째 버전으로 돌아가고 싶다면 co -r.1.1 <filename>을 사용할 수 있다. 파일의 버전을 강제로 지정하려면 ci -r2 <filename>과 같은 방법을 사용할 수 있다.
1.1.1.5. rcsdiff 명령
rcsdiff -r1.1 -r1.2 <filename>과 같은 형식으로 두 버전의 차이점을 알아볼 수 있다.
1.1.1.6. 버전 식별
소스 파일에 특수한 매크로를 사용하여 Check In 하면 매크로가 확장되어 내용으로 대체된다. $RCSfile$ 매크로는 파일의 이름으로 확장되고, $Id$ 매크로는 버전을 식별하는 문자열로 확장된다.
1.1.1.7. ident 명령
ident 명령을 사용해 $Id$ 문자열을 포함하는 파일의 버전을 찾을 수 있다. ident <filename>을 입력하면 파일에서 $Id$에 해당하는 문자열 부분을 찾아 출력한다.