형상관리 도구인 CVSNT를 설치하고 사용하는 방법을 설명한다. 여기서 설명하는 CVSNT의 버전은 2.5.04.3510이고, 여기에서 다운로드한다.
사용자 관리 등의 클라이언트 용도로 CVSNT를 설치한다면 <2. 설치>와 <5. 사용자 관리>만을 참고한다. 그리고 CVSNT를 설치하면 자동으로 윈도우 서비스에 등록되기 때문에 클라이언트 목적으로 설치하였다면 서비스를 중지시키고 상태를 자동에서 수동으로 수정한다.
2. 설치
(1) 설치와 관련한 주의 사항
안정성 등의 이유로 CVSNT를 NTFS 파일 시스템에 설치하는 것을 권장하지만 FAT 파일 시스템에 설치해도 된다.
설치하기 전에 기존에 설치한 CVSNT와 CVS 프로그램을 삭제하는 것을 권장한다. 삭제하기 곤란한 경우에는 최소한 PATH가 겹치는 일은 방지해야 한다. 예를 들어 WinCVS의 cvs.exe나 Cygwin의 cvs.exe 등의 프로그램은 CVSNT 일부 기능의 수행을 방해할 수 있다.
윈도우 2003에 CVSNT를 설치하는 경우 WMI 서비스와 연관되어 문제가 발생하는 경우가 있다. 이 경우 WMI 서비스를 중단하고 CVSNT를 설치한 뒤, WMI 서비스를 재시작한다. 이는 CVSNT 설치시에만 해당하며 이 두 서비스를 동시에 운영하는 것에는 문제가 되지 않는다.
(2) CVSNT 설치 과정
다운로드한 cvsnt-server-2.5.04.3510.msi 파일을 클릭하여 설치를 시작한다. Next 버튼을 클릭한다.
Setup 화면
라이센스에 동의한 후에 Next 버튼을 클릭한다.
End-User License Agreement 화면
Typical을 선택한 후 Next 버튼을 클릭한다.
Choose Setup Type 화면
Install 버튼을 클릭하면 프로그램 복사를 시작한다.
Ready to Install 화면
아래는 복사가 진행 중인 화면이다.
Installing CVSNT 화면
설치가 완료되면 Finish 버튼을 클릭한다.
설치 완료 화면
설치를 마친 후에는 운도우를 다시 시작해야 한다. CVSNT는 윈도우 서비스에 자동으로 등록되어 윈도우가 시작될 때 함께 시작한다. CVSNT를 서버가 아닌 클라이언트로만 사용한다면 서비스를 중지시키고 시작 유형을 자동에서 수동으로 수정한다.
재시작 확인 화면
3. CVSNT 서버의 시작과 종료
윈도우 시작 메뉴의 <CVSNT | CVSNT Control Panel> 메뉴를 통해서 CVSNT 서버를 제어한다. Control Panel의 About 탭 하단의 Services 영역을 통해서 CVSNT 서버를 시작하고 종료한다.
그림 8. About 탭 화면
4. 환경 설정
(1) Repository 관리
Control Panel의 Repository Configuration 탭을 이용해서 Repository를 추가하고 삭제한다. Repository를 추가하려면 하단의 Add 버튼을 클릭한다.
Repository configuration 탭 화면
Add 버튼을 클릭하면 나오는 화면의 Location 필드에 오른쪽 버튼을 이용해서 C:/project-temp/repository를 입력한다. Name 필드에는 자동으로 /project-temp/repository가 입력된다. 이 이름이 곧 Repository 경로이다.
Server Settings 화면
경로는 상황에 맞게 수정한다.
OK 버튼을 클릭하면 아래처럼 해당 디렉토리를 CVS Repository 디렉토리로 초기화할지에 대해서 물어본다. 예 버튼을 클릭한다.
Repository 디렉토리 초기화 화면
권한과 신뢰성 문제 등을 이유로 Repository 디렉토리로 네트워크 드라이브를 선택해서는 안된다.
새로운 Repository를 추가하였다면 Control Panel의 About 탭 하단의 Services 영역을 통해서 CVSNT 서버를 다시 시작한다.
경험적으로 설치 이후나 Repository 추가 이후에 윈도우 혹은 CVSNT를 재시작하지 않아도 정상적으로 동작하는 경우도 있고 그렇지 않은 경우도 있다. 따라서 가급적 재시작하도록 한다.
(2) CVS와의 호환성 유지
CVSNT 기본 설정은 표준 CVS와의 호환에 문제가 있다. 이 문제를 해결하기 위해서 아래처럼 설정한다.
Compatibility Options 탭 화면
Control Panel의 Compatibility Options 탭의 Non-CVSNT Clients 영역에서 Respond as cvs 1.11.2 to version request와 Emulate ‘-n checkout’ bug 옵션을 체크한다.
5. 사용자 관리
CVSNT 서버 접근에 사용하는 프로토콜에 따라서 사용자, 그룹, 권한을 다양하게 설정할 수 있다. 다양한 클라이언트와의 호환성과 편리한 설정 등을 이유로 가장 많이 사용하는 프로토콜은 pserver이다. 이 글에서는 pserver 프로토콜에 대한 설정만을 설명한다. 보안상의 이슈가 있다면 ssh(ext) 프로토콜을 사용한다.
pserver 프로토콜을 이용하면 CVSNT가 설치된 윈도우 사용자 계정으로 CVSNT 서버에 접근할 수 있다. 그러나 모든 사용자를 윈도우 사용자 계정으로 등록할 필요는 없다. CVSNT 서버를 관리하기 위한 대표 윈도우 사용자 계정 하나를 두고 이 계정을 이용하여 다른 사용자를 추가할 수 있는데 이렇게 추가한 사용자를 alias라고 한다. 사용자 alias 정보는 Repository 디렉토리 밑의 CVSROOT/passwd 파일에 저장된다.
이 때 사용하는 윈도우 사용자 계정은 관리자(Administrators) 권한을 지녀야 한다.
(1) 사용자 추가
사용자를 추가하기 위해서는 우선 윈도우 사용자 계정으로 CVSNT 서버에 로그인해야 한다. 여기서는 윈도우 사용자 계정 이름을 Administrator로 가정한다. localhost는 CVSNT 서버가 설치된 컴퓨터의 호스트 이름 혹은 IP 주소로 수정한다.
set cvsroot=:pserver:Administrator@localhost:/project-temp/repository
cvs login
cvs login
Administrator 계정에 대한 패스워드를 입력하면 로그인에 성공한다. 사용자(alias)는 아래처럼 추가한다.
cvs passwd -a -r Administrator 정대만
위의 예처럼 한글 이름으로도 사용자(alias) 계정을 만들 수 있기 때문에 프로젝트에 참여하는 개발자들의 이름으로 사용자(alias)를 추가하는 것을 권장한다. 단, 일부 CVS 클라이언트에서는 사용자 계정이 한글인 경우에 올바르게 동작하지 않는다.
기본적으로 패스워드는 1111로 설정하고, 개별 사용자가 직접 패스워드를 수정하게 한다.
작업이 완료되었으면 아래처럼 로그아웃한다.
cvs logout
(2) 패스워드 수정
수정할 사용자(alias)로 CVSNT 서버에 로그인한다. localhost는 CVSNT 서버가 설치된 컴퓨터의 호스트 이름 혹은 IP 주소로 수정한다.
set cvsroot=:pserver:정대만@localhost:/project-temp/repository
cvs login
cvs login
정대만 계정에 대한 패스워드를 입력하면 로그인에 성공한다. 패스워드는 아래처럼 수정한다.
cvs passwd
수정할 새로운 패스워드를 입력한다.
(3) 사용자 삭제
사용자를 삭제하기 위해서는 우선 윈도우 사용자 계정으로 CVSNT 서버에 로그인해야 한다. 여기서는 윈도우 사용자 계정 이름을 Administrator로 가정한다. localhost는 CVSNT 서버가 설치된 컴퓨터의 호스트 이름 혹은 IP 주소로 수정한다.
set cvsroot=:pserver:Administrator@localhost:/project-temp/repository
cvs login
cvs login
Administrator 계정에 대한 패스워드를 입력하면 로그인에 성공한다. 사용자(alias)는 아래처럼 삭제한다.
cvs passwd -X -R 정대만
X와 R은 대문자이다.