|
군더더기 빼고 CVS 대충 알고 있는 사람이면 사용해 보고 싶을 것이다. 그러면 다음 준비물을 준비하자.
CVSNT : http://www.cvsnt.org/wiki/ Tortoise CVS : http://www.tortoisecvs.org/ WinCVS : http://www.devguy.com/fp/cfgmgmt/cvs/startup/ CVSNT는 윈도우용 CVS 서버고 Toroise CVS는 윈도우 탐색기에 Add on 되는 CVS 클라이언트 툴이고 WinCVS는 윈도우 어플리케이션 형태의 CVS 툴이다. 서버 설치하는 방법 1. 시스템 점검 파일시스템이 NTFS인지 확인하고, 아니라면 전환한다. CVS프로그램 자체가 깔릴 디렉토리는 NTFS가 아니어도 되지만, 3번에서 생성할 디렉토리는 NTFS시스템상에 있어야 한다. 2. CVS 디렉토리를 생성하고 권한설정 "d:cvsrepo" 와 "d:cvstemp" 라는 두 개의 디렉토리를 생성한다. SYSTEM 계정에 "모든 권한"을 주도록 한다. *주의: "c:WINNTTemp" 나 "C:Documents and Settings" 밑에 놓으면 권한설정이 제대로 되지 않는다. 3. 파일 받아서 설치 http://www.cvsnt.org에서 가서, 설치파일을 받아서 설치하고, 서버를 리부팅. 옵션은 잘 모르면, 다 체크한다. SSH 옵션만 Experimental 일 경우 그냥 체크하지 말자. 시작메뉴에도 있지만, 제어판에 봐도, "CVS for NT" 라고 물고기 아이콘이 있는 항목이 생긴다. 이걸 실행한다. Service Stauts가 Start 상태이면, Stop 상태로 바꾼다. 4. Repositories 설정 3에서 실행된 제어판을 보면 Repositories탭이 있다. 여기서 Repository Prefix 체크박스를 설정하고, "..."버튼을 눌러서, 2.에서 설정한 "d:cvsrepo" 디렉토리를 선택한다. 5. Repsoitory Root 추가하기 4에서 Prefix를 설정한 그 화면의 중간에 있는 "Add" 버튼을 누르고, "D:/cvsrespo/" 라고 써진 텍스트에 바로 붙여서 test라고 쓴다. 즉, "D:/cvsrespo/test"라고 한다. test는 자기가 원하는 이름을 써도 좋다. 새로 만들거냐고 물어보면 OK하면 된다. 6. Advanced 탭 설정 Advanced 탭에서, impersonation enabled를 체크하면, CVS에 접속한 사용자ID권한을 가지고, 파일핸들링을 하게 된다. 그렇지 않다면 CVS Service를 실행한 사용자 권한 (SYSTEM등)의 권한으로 파일핸들링이 된다. 도메인에 속해있지 않다면 local user를 쓰도록 설정한다. 그리고, 꼭 "Apply"(적용) 버튼을 눌러라.. 포트번호도 한 번 확인해본다. 7. 다시 서버 시작 6번까지 했으면 첫 번째 탭 "Server Status"에서 서버를 다시 시작한다. Command Prompt에서 Path라고 쳐서, C:Program Filescvsnt; 이렇게 Path가 추가가 되어 있지 않다면 리부팅하고 다시 확인해봐라. 8. 사용자 관리- 불안한 프로토콜 제거 이제 사용자를 추가를 해야 하는데, 6에서 설정한 대로 ntserver의 유저인증을 그대로 쓸 경우가 있고, pserver를 이용하는 경우와 sspi를 쓰는 경우가 있다. pserver를 쓸 경우 보안상의 약점이 있으므로 sspi를 쓰기를 권장한다고 한다. pserver 프로토콜은 사용자 암호만 암호화 되고, 나머지 내용은 paint text로 송되므로, 인터넷에 공개된 환경에는 적합하지 않다. 따라서, pserver protocol을 삭제해야 하는데, 삭제는 물리적으로 cvsnt디렉토리에서, pserver_protocol.dll 을 이름을 pserver_protocol.dll.old 로 바꾸자.. 9. 사용자 추가 NT계정을 사용자마다 할당해서 사용할 수 도 있고, 그렇지 않을 수도 있다. 여기서는 그렇지 않을 경우를 본다. 일단 사용자 계정을 다음과 같이 만든다. 코맨드프롬프트를 열고, set cvsroot=:sspi: cvs passwd -a 예) set cvsroot=:sspi:myCom:/test (엔터) cvs passwd -a testuser(엔터) 그리고, 암호넣으라고 나오면 암호 두번 쳐넣어준다. 참고, pserver를 암호로 쓸 경우, 아래처럼 한다. set cvsroot=:pserver: 일단 사용자가 생겼다 하더라도, 실제 시스템 계정과 연결이 되지 않으면 효용이 없다. 즉, 실제 NT계정과 연결(Aliasing)을 해줘야 한다. 아래 처럼 한다. cvs passwd -r 예) cvs passwd -r NTTestUser -a testuser 이러면 동일한 NTUSer의 권한으로 여러 CVS User가 같이 쓰게 된다. 위에서 생성된 사용자 정보는 cvsrepo 디렉토리에 passwd란 파일에 저장된다. 10. NT계정제한 기본적으로 NT계정의 모든 유저가 CVS에 접근이 되도록 되어 있는데 이것을 막고, CVS User만 사용하게 하려면, CVSROOT/config 파일에 SystemAuth = No 와 같은 줄을 첨가한다. 하지만 이럴 경우 passwd파일에 있는 패스워드는 의미가 없게 되고, NT계정암호로 인증을 한다고 한다. 여기서 시스템이란 것은 CVS시스템을 말하는 것 같다.
CVS란 무엇인가?
Concurrent version system의 약자로 버전 관리 툴이다. 흔히 작은 규모로 프로그램을 작성 할 때는 버전 관리 툴을 사용하지 않는다고 한다. 즉, 중급 규모 이상 여러 사용자가 공동 작업으로 프로그램을 작성할 때 사용한다고들 한다. 물론 맞는 말인 것 같다. 그러나 그렇게 작업해서 늘어나는 work 폴더 안의 프로젝트들…, 그리고 늘어나는 Backup 폴더 안의 날짜를 이름으로 하는 프로젝트들… 도저히 감당하기가 어렵다. 이런 필요성에 의해 작은 프로젝트를 하는 사람도 버전 관리 툴이 필요하다고 생각한다. 과연 CVS는 최신 버전만 관리하나? 절대 아니다. CVS는 Visual Source Safe등과 같이 Co-work를 할 수 있도록 지원하기도 한다. 이 기능이 없으면 앙꼬 빠진 찐빵이라 할 수 있을 것이다. 구성은? CVS는 버전을 관리하는 서버와 서버에 등록된 사용자가 사용하는 클라이언트로 구성된다. 서버는 FreeBSD, Linux, Solaris, windows 등의 OS에 설치 가능하다. 물론 설치 가능한 버전은 따로 있다. ^^ 윈도우 사용자로서 클라이언트는 보통 두 가지를 쓰게 된다. 하나는 탐색기 비슷하게 생긴 wincvs이다. 이 프로그램은 독립된 어플리케이션으로서 여러 CVS 메시지를 대화상자를 통해 처리하게 하는 프로그램이다. 또 하나는 Tortoise CVS 라는 툴이다. 이 툴은 윈도우 탐색기에 껴서 팝업 메뉴에서 쉽게 CVS를 사용할 수 있도록 하는 툴이다. 그냥 둘 다 깔아 보고 사용해 보다가 익숙해 지는 것 사용하는 것이 가장 좋은 것 같다. CVS를 사용하려면 몇 가지 용어에 익숙해 져야 한다. Import : 버전 관리하고자 하는 프로그램을 서버에 등록하는 역할을 한다. Check Out : 서버에서 버전 관리중인 프로젝트를 취득한다. Commit : 취득한 프로젝트를 변경 후에 서버에 저장한다. Update : 서버에서 바뀐 내용이 있는 파일을 다운로드 한다. Add, Remove : 서버 관리하의 프로젝트에 파일을 추가하거나 삭제한다. CVS에 대해 좀 알았다 싶으면 실제로 해 봐야 한다. 프로그래머가 귀찮아하면 굶는다. ^^
|
||||