Linux/버전관리2009. 5. 26. 11:33
http://kyungseo.pe.kr/blog/23



아직 미비한 부분이 꽤 있지만, CVSNT 설치에 관하여 위키에 정리한 글을 붙여본다. - 역시나 포맷이 틀어지는 문제가 있다. -_-

원본 URL은 http://kyungseo.pe.kr/wiki/development/tools/cvs 이다.




CVSNT 2.5.03 설치 및 설정 가이드


이 문서는 윈도우에 CVS(Concurrent Version System)를 설치 하고 설정하는 과정에 대한 가이드로서,

  • 이전(2004년 5월 11일)에 작성했던 CVSNT 2.0.41a의 설치 가이드를 현재 시점(2007년 9월)의 최신 버전인 CVSNT 2.5.03.2382에 맞게 재 편집한 것이다.
  • CVS 사용자 매뉴얼이 아니라 프로그램 설치와 몇가지 설정에 대한 가이드를 제시한다. CVS의 사용법에 대한 것은 The CVSNT Manual(command reference)를 참고하라.
  • 주로 CVSNT Installation Tips 페이지를 참고하여 작성되었다.


CVSNT 2.5.03 설치


CVSNT의 설치 대상은 Windows XP Pro이다. Windows 2003의 경우 이 가이드와 유사할 것이다. 참고로 XP Home은 보안상의 이유로 CVSNT의 설치 대상에서 제외하는 것이 권장된다.


CVSNT Server 설치


CVSNT Server 설치 준비


로그인

설치 전 반드시 administrator로 로그인 하도록 한다.

로컬 디스크(local disk) 사용

repository 파일들의 저장 위치를 네트웍 드라이브를 지정해서는 안된다.

파일 시스템 형식

NTFS 파일 시스템을 사용할 것을 강력히 권장한다.

폴더 옵션

“모든 사용자에게 동일한 폴더 공유 권한을 지정(권장)”의 체크를 해제하도록 한다. 이것은 Windows 95, 98과의 호환성을 유지하기 위한 옵션이다.

“모든 폴더에 적용” 버튼을 클릭한다.

CVSNT 다운로드

가장 최신의 CVSNT 설치본을 다운로드 한다. 2007년 09월 현재 안정 버전은 2.5.03.2382이다.

CVS 디렉토리 생성

CVS가 어떤 파일 시스템에 설치되는지는 중요하지 않다. 단, repository 파일이 위치하는 곳은 NTFS여야한다. 디렉토리 이름에 공백을 넣지 않도록 한다.

아래의 경로와 같은 디렉토리를 생성한다. 이후의 설명은 다음 디렉토리 구성을 전제로 한다.

c:\cvsrepos
c:\cvsrepos\cvstemp
디렉토리 보안과 권한
  • c:\cvsrepos\cvstemp 디렉토리의 보안 세팅에서 SYSTEM을 포함하는 모든 계정에 모든 컨트롤(권한)을 허가한다.
  • cvstemp 디렉토리로 c:\WINNT\Temp 혹은 “C:\Documents and Settings” 하위의 어떤 디렉토리라도 지정해서는 안된다. Win2000과 Win-XP의 경우 이들 디렉토리는 사용자 접근을 제한하기 때문이다.

CVSNT 설치

Welcome

License Agreement

Choose Setup Type

Ready to Install

Installing

Completing

Installer Information

NT/Win2000/XP에서 CVSNT를 설치 후 반드시 rebooting하도록 한다. 리부팅하지 않고 repository를 생성하려 하면 “Repository initialization failed”라는 error가 발생할 것이다. 단, CVSNT 업그레이드 과정이라면 리부팅할 필요가 없다.

CVSNT server와 repository 설정

CVSNT Control Panel configuration

애플릿 실행

제어판을 열어 애플릿을 실행한다.

서비스 중지

애플릿의 “About” 탭에서 CVS Service가 실행 중이라면 정지하도록 한다.

저장소 생성

“Repository configuration” 탭으로 이동한다. 참고로 테스트 서버의 이름은 “kyungseo”이다.

저장소 추가를 위해 Add 버튼을 클릭한다. 아래와 같은 화면이 팝업된다.

폴더 브라우저를 띄우고 저장소의 루트가 될 폴더를 선택하거나 새 폴더를 생성한다(폴더 경로에는 가급적 공백을 포함하지 않도록 한다).

Name은 기본값(폴더 경로)을 사용하지 말고 아래와 같이 입력하도록 한다.

“예” 버튼을 눌러 저장소를 초기화한다.

저장소 목록에 추가된다.

서버 설정

“Server Settings” 탭으로 이동한다. 대부분 기본값을 그대로 사용하는데, 도메인의 경우 서버 컴퓨터의 이름으로 설정한다. temporary directory의 경우 폴더 브라우저를 열어 이전 단계에서 생성한 “c:\cvsrepos\cvstemp” 디렉토리를 선택한다.

호환성 옵션

“Compatibility Options” 탭으로 이동한다. 기본값을 그대로 사용한다.

플러그인

“Plugins” 탭에서는 추가적인 확장 기능과 연결 프로토콜을 정의한다. Configure 버튼을 클릭하면 선택된 항목의 설정을 변경할 수 있다.

고급 설정

마지막으로 “Advanced” 탭에서는 고급 설정을 변경할 수 있다.

적용

“적용” 버튼을 반드시 누르도록 한다. 그리고 첫번째 탭(About)으로 이동하여 서비스를 시작하도록 한다.

CVS 사용자 추가 및 관리

CVS server에 pserver나 sserver 프로토콜을 사용하려 할 때 필요한 단계이다.

CVS 사용자 계정 추가

서버 상에 두개의 실제 계정(시스템 계정)을 생성하도록 한다. 이 계정들은 CVS 사용자들의 작업 계정이 된다.

  • cvsadmin : CVS 관리자 계정
  • cvsuser : CVS 일반 사용자 계정

CVS 사용자 추가

커맨드 창을 열고 다음과 같이 입력하여 CVS 사용자를 추가할 수 있다. <text> 부분은 실제 환경에 맞게 변경하도록 한다.

set cvsroot=:sspi:<computername>:/TEST
cvs passwd -a <account name>

주의 할 것은 이렇게 입력할 경우 사용자는 반드시 로컬 시스템에 존재하는 NT User여야 한다는 것이다.

아래와 같이 계정 이름에 공백이 포함되는 경우에는 쌍따옴표로 싸주도록 한다.

패스워드 입력 프롬프트에 두번 입력하면 CVSROOT/passwd 파일이 생긴다.

참고로 아래와 같은 명령으로 domain users를 추가할 수 있다.

cvs passwd -r <real accountname> -D <domain name> -a <cvs login name>
별칭을 사용한 CVS 사용자와 실제 계정의 매핑

수많은 CVS 사용자를 위해 그만큼의 시스템 계정을 모두 생성할 필요는 없다. 대신, 아래와 같은 명령으로 실제 시스템 계정에 대한 별칭을 생성할 수 있다.

cvs passwd -r <real accountname> -a <cvs login name>

계정에 공백이 포함되어 있다면 쌍따옴표로 감싸도록 한다.

cvs passwd -r "system admin" -a "new user"

여기까지 진행한 후 passwd 파일을 열어보면 다음과 같다.

어드민 사용자 권한

시스템 인증 설정과 별개로 CVS Admin을 설정하려면 CVSROOT/admin 파일을 만들고 CVS 어드민 권한을 부여하려는 사용자를 라인으로 구분하여 등록한다. 이 파일은 다음과 같은 형태가 될 것이다.

kyungseo
chanwoo
testaccount 

Test

PSERVER

새로운 명령 창을 열고 아래와 같이 입력한다. <text>는 실제 환경에 맞게 수정해야한다.

set cvsroot=:pserver:<user>@<computername>:/TEST

그리고 다음과 같이 입력한다(“cvs login”에서 패스워드 입력 프롬프트가 뜬다).

cvs login
cvs ls -l -R

Test/CVSROOT의 파일 목록이 표신된다(아래 그림의 경우 아직 추가한 파일이 없어 목록에 아무것도 나타나지 않고 있다).

SSERVER

(내용 업데이트 예정)

Remote

다른 컴퓨터에서 CVS 서버로 원격 접속할 경우에도 상위 기술한 PSERVER, SSERVER의 과정과 동일하다.

단, 로그인이 실패할 경우 CVS 서버의 방화벽 설정을 편집해야 할 수도 있다. 제어판에서 “Windows 방화벽” 애플릿을 실행하고 예외 탭으로 이동 후, 포트 추가 버튼을 클릭한다.

CVSNT, 2401 포트(TCP)를 예외항목으로 추가한다.

방화벽 설정

 


CVS Client

TortoiseCVS와 CVS-Gui(구 WinCvs)를 많이 사용한다. 각 Client 프로그램의 설치 및 사용법은 직관적으로 어렵지 않다.

여기서는 링크만을 제공하며 자세한 내용은 차후에 추가할 예정이다.

TortoiseCVS

http://www.tortoisecvs.org/

CVS-Gui(WinCvs)

http://www.wincvs.org/

ViewCvs

http://www.viewvc.org/

CS-CVS

http://www.componentsoftware.com/products/cvs/index.htm

Eclipse에서 CVS 사용

Eclipse에서 CVS를 사용하기 위한 간략한 가이드이다. 자세한 것은 Working in the team environment with CVS을 참고한다.

참고로 Eclipse의 최신 버전은 이곳 또는 여기에서 다운로드 할 수 있다. Eclipse Language Pack을 설치하면 한글화 된 도움말을 볼 수 있다.

CVS 저장소 추가

Window > Open Perspective > Other…를 선택한다.

CVS Repository Exploring을 선택하고 OK 버튼을 클릭한다.

아래와 같이 CVS Repository Exploring 퍼스펙티브가 열린다.

CVS Repository Exploring에서 컨텍스트 메뉴를 띄우고 New > Repository Location…을 선택한다.

그림과 같이 입력하여 CVS 저장소를 추가한다. Repository Path에 유의하도록 한다. Save Password에 체크하면 비밀번호를 기억한다.

저장소가 추가된 모습이다.

초기 작업

저장소에 기본 리소스 추가

기본 소스가 있다면 최초로 저장소에 추가하는 작업을 진행한다.

Package Explorer에서 CVS 저장소에 추가하기 위한 프로젝트를 선택한 후 컨텍스트 메뉴의 Team > Share Project…를 선택한다.

저장소 유형으로 CVS를 선택한다. 저장소 플러그인으로 CVS만 있다면 이 화면은 생략될 수 있다.

프로젝트를 공유하기 위한 저장소로 이전 단계에서 등록한 CVS 저장소를 선택한다.

모듈 이름을 설정한다.

Finish 버튼을 클릭한다.

Commit 창이 팝업된다. 적절한 Comment를 입력한다.

리소스 커밋 작업이 진행된다.

작업이 종료된 후의 Pagkage Explorer 모습이다. Icon이 달라졌다.

이제, 컨텍스트 메뉴를 통해 팀 작업을 수행할 수 있다.

저장소로부터 프로젝트 생성

CVS Repositories에서 저장소를 펼치면 등록된 프로젝트를 HEAD에서 확인할 수 있다. 해당 프로젝트의 컨텍스트 메뉴에서 Check Out As…를 선택한다.

Finish 버튼을 클릭하면 저장소로 부터 리소스를 다운로드하여 프로젝트를 생성한다.

간략한 CVS 사용법

여기서는 CVS와 관련한 메뉴 정도만 설명하도록 한다. 자세한 내용은 위에 기술한 Eclipse Language Pack을 설치하여 한글화된 도움말을 보는 것을 권장한다.

용어 정의

용어 설명
Repository CVS 서버에서 소스를 모아둔 파일 시스템
Checkout CVS 저장소에서 모듈을 가져옴
Commit CVS Repository에 변경사항을 반영
Update CVS Repository에 저장된 내용과 Local에 저장된 내용을 비교하여, 변경된 내용을 Local로 가져옴
Revision 개별 파일마다 부여된 일련번호로, Commit 할때마다 자동 증가함 ( 1.1 부터 시작 )
Version 여러 Revision을 가진 파일들의 묶음에 부여한 일련번호
Tag 파일이나 파일들의 집합에 대한 대표 이름
Branch 하나의 모듈을 여러 버전으로 나누는 것. 모듈을 루트로 하여 각각의 버전들을 트리 형태로 관리
Head Main Branch
Synchronize Repository와 Local PC의 파일과 비교하여 Update 수행

메뉴

Workbench의 컨텍스트 메뉴에 나타나는 CVS 관련 메뉴에 대해서 알아본다.

Team

Team 메뉴의 하위 메뉴는 다음과 같다.

메뉴 항목 설명
Synchronize with Repository 저장소의 내용과 Local에 저장된 파일 내용과의 비교
Commit Eclipse에서 작업한 최신 변경 분을 CVS 저장소에 반영.
Update CVS 저장소의 파일과 Local에 저장된 파일과 비교하여 변경사항을 Local 에 반영
Create Patch Source 상의 주요 변경사항을 개발자에게 배포하기 위한 변경분에 대한 Patch 파일 생성
Apply Patch Patch 파일에 대한 반영
Tag as Version 여러 Revision들의 묶음을 하나의 Tag로 관리
Branch 각 모듈에 대한 Branch 생성
Merge
Switch to Another Branch or Version
Show Annotation
Show History CVS 의 각 Resource의 Revision History 출력
Add to Version Control
Add to .cvsignore
Change ASCII/Binary Property
Restore from Repository 삭제된 파일등을 저장소로부터 복구
Revert to Base
Show Editors 각 파일에 대한 Editor들을 출력
Unedit
Edit
Compare With

Compare With 메뉴의 하위 메뉴는 다음과 같다.

메뉴 항목 설명
Latest from HEAD 현재 파일을 Repository의 최신파일과 비교
Another Branch or Version 특정 Head, Branch 또는 Tag를 가진 파일들과 비교
Each Other
History 해당 파일의 Revision 내역
Replace With

Replace With 메뉴의 하위 메뉴는 다음과 같다.

메뉴 항목 설명
Latest from HEAD 현재 파일을 저장소의 최신파일로 교체
Another Branch or Version 최신 모듈이 아닌 다른 Branch 또는 Version과 모듈 교체
History Revision 비교
Previous from Local History Local History내의 이전 파일과의 교체
Delete

로컬 환경에서 파일을 삭제한다.

삭제된 파일을 포함하고 있던 디렉토리의 컨텍스트 메뉴에서 Team > Synchronize with Repository를 선택하여 Commit하면 된다.

Links



Posted by 삼스

댓글을 달아 주세요