1. 도구개요 소개 버전컨트롤시스템으로소스코드나기타리소스의히스토리를쉽게관리할수있도록도와주는도구 주요기능 버전관리, 변경관리, 소스관리 카테고리 세부카테고리형상관리 커버리지 도구난이도하 라이선스형태 / 비용 GPL(General Public License) / 무료사전설치도구 운영체제 Windows, Linux, Mac OS, UNIX 최신버전 2.8 (2012. 10) 특징 소프트웨어의버전을관리 이전버전의소스를확인 소스변경시비교 / 병합을통한변경관리가용이 적용회사 / 프로젝트 관련도구 SVN 제작사 March Hare 공식홈페이지 http://cvsnt.org 1
2. 기능요약 -- 버전컨트롤시스템으로소스코드나기타리소스의히스토리를쉽게관리할수있도록도와주는도구 주요기능 버전관리 지원여부 지원 Check Out 지원 (Doc 파일설치필요 ) 버전충돌관리지원 ( 버전별코드내용 ) 코드비교지원 ( 버전별 ) IDE 지원지원 (Eclipse, NetBeans 등 ) 1
3. 도구실행환경 다양한 OS 를지원 Windows : Windows XP / Windows 7 (32, 64-bit 모두지원 ) Linux, Unix, Mac OS( 주로 Client), UNIX 자체저장소를보유 Repository Server Client IDE NetBeans Eclipse Windows / Linux / Mac OS / UNIX 1
4. 도구설치방법 세부목차 4.1 NT 다운로드 4.2 NT 설치 4.3 NT 설정 1
4. 도구설치방법 4.1 NT 다운로드 (1/2) NT 다운 : http://www.march-hare.com/cvspro/ Windows 환경 NT 다운 : Download Now 버튼클릭 2
4. 도구설치방법 4.1 NT 다운로드 (2/2) NT 다운 : 저장하기 즉시실행하거나, 사용자가원하는폴더에저장 3
4. 도구설치방법 4.2 NT 설치 (1/3) 다운받은 NT 를실행 아이콘클릭 실행 Next 4
4. 도구설치방법 4.2 NT 설치 (2/3) NT 약관동의 Server/Client 모두설치 5
4. 도구설치방법 4.2 NT 설치 (3/3) 설치내용을확인하고설치 6
4. 도구설치방법 4.3 NT 설정 (1/3) NT 환경설정 : 제어판 NT Server 실행 7
4. 도구설치방법 4.3 NT 설정 (2/3) NT 환경설정 : 기본저장소설정 About 에서서비스종료 Repository Configuration 에서저장위치설정 Server Setting 에서사용자및임시폴더설정 About 에서다시시작 : 저장소위치설정, 저장소종류설정 8
4. 도구설치방법 4.3 NT 설정 (3/3) NT 환경설정 : 환경변수및사용자추가 환경변수설정 ( 저장소위치가 C:\NT 일시 ) : set ROOT=:pserver:127.0.0.1:/NT 로그인 : cvs login 사용자비밀번호입력 9
5. 도구기능소개 세부목차 5.1 주요기능 5.2 메뉴소개 5.3 예제소개 5.4 Eclipse 5.5 실행 5.6 저장소등록 5.7 프로젝트공유 5.8 체크아웃 1
5. 도구기능소개 5.1 주요기능 (1/2) 소스코드의변경시이전소스코드와비교를통해업로드 소스코드를여러사람이접근하여변경하는경우버전관리를통해충돌을관리하기때문에문제가발생할여지가줄어듦 2
5. 도구기능소개 5.1 주요기능 (2/2) 버전별소스코드를관리하고비교가능 3
5. 도구기능소개 5.2 메뉴소개 Java Perspective Java Perspective 의 Package Explorer 에서 Project 우클릭 Team 메뉴소개 항목기능 Synchronize with Repository Commit... Update Create Patch... Apply Patch... Tag as Version... Branch... Merge... Switch to Another Branch or Version... Add to Version Control 저장소와동기화 저장소에업로드버전업데이트패치파일생성패치파일등록버전에따른태그생성릴리즈를관리하기위한브랜치소스코드병합다른버전또는브랜치로변경버전관리추가 4
5. 도구기능소개 5.2 메뉴소개 Repository Exploring Perspective Repository Exploring Perspective의 Repositories 메뉴소개항목기능 Repository Location Date Tag... Refresh Branches... Paste Connection Copy to Clipboard Refresh View Discard location Properties 저장소위치지정태그날짜생성브랜치새로고침연결붙여넣기클립보드복사새로고침저장소제거속성보기 5
5. 도구기능소개 5.3 예제소개 기능을소개하기위해물건구매예제를사용 예제소스코드는두사람이관리하고있으며버전관리를위해 를사용 물건구매예제의내용과변경사항 물건구매예제 예제소스코드의내용 Buyer 가 TV 와 Computer 를구입 Buyer 가구입한내용을출력 구입후 Buyer 의잒고를출력 두사람은 Eclipse 를사용하며각각 에서체크아웃하여소스코드를수정 버전별소스코드의변경사항 1.2 : TV 의가격변경 (100 150) 1.3 : TV 의가격변경 (150 200) 1.4 : 기졲소지금액변경 (1000 500) 1.5 : TV 구매추가 (1 개구매 2 개구매 ) 6
5. 도구기능소개 5.4 Eclipse 프로젝트생성 Eclipse 에서예제로사용할프로젝트를생성 의기능을소개하기위해예제로사용할물건구매에대한프로젝트를생성 File New Java Project 선택 New Java Project 창에서 Project name 입력 Finish 버튼클릭 ❶ ❷ ❸ ❹ ❺ 7
5. 도구기능소개 5.4 Eclipse 클래스생성 물건구매클래스를생성 물건구매프로그램에대한클래스를생성하여자바소스코드를입력 src 폴더우클릭 New Class 선택 New Java Class 창에서 Class name 입력 Finish 버튼클릭 ❶ ❹ ❷ ❸ ❺ 8
5. 도구기능소개 5.4 Eclipse 소스코드입력 (1/2) 예제소스코드를작성 class Product { int price; Product(int price) { this.price = price; } } class Tv extends Product { Tv( ) { super(100); } public String tostring( ) { return "Tv"; } } class Computer extends Product { Computer( ) { super(200); } public String tostring( ) { return "Computer"; } } 물건에대한클래스 Tv, Computer 등의물건클래스가 Product 클래스를상속받아생성 class Buyer { int money = 1000; void buy(product p) { if(money < p.price) { System.out.println(" 잒액이부족합니다."); return; } money -= p.price; System.out.println(p + " 을구입하셨습니다."); } } class PurchaseTest { public static void main(string args[ ]) { Buyer b = new Buyer( ); Tv tv = new Tv( ); Computer com = new Computer( ); b.buy(tv); b.buy(com); 물건구매에대한클래스로물건을구입한내역과잒액을출력 System.out.println(" 현재남은돈은 " + b.money + " 만원입니다."); } } 9
5. 도구기능소개 5.4 Eclipse 소스코드입력 (2/2) PurchaseTest.java 파일이생성 10
5. 도구기능소개 5.5 실행 (1/2) Eclipse 에서 를사용하기위해 Perspective 사용 Eclipse 에서는 를사용하기쉽게 Repository Exploring 라는 Perspective 를제공 Window -> Open Perspective -> Other 클릭 -> Repository Exploring 선택 -> OK 버튼클릭 ❶ ❹ ❷ ❸ ❺ 11
5. 도구기능소개 5.5 실행 (2/2) Repository Exploring Perspective 가열림 이 Perspective 에서 저장소를등록하고사용가능 12
5. 도구기능소개 5.6 저장소등록 (1/2) 저장소를등록 Eclipse 에서 서버로연결하여저장소를등록 아이콘클릭 -> Repository 정보입력 -> Finish 버튼클릭» Host : 서버의위치. 본매뉴얼에서는현재컴퓨터에서버를설치하고저장소를설정하였으므로 localhost 로지정» Repository path : NT 저장소설정시지정된저장소이름 (18 페이지참조 )» User : NT 에등록된사용자아이디를입력 (23 페이지참조 )» Password : NT 에사용자등록시지정한비밀번호 ❶ ❷ ❸ 13
5. 도구기능소개 5.6 저장소등록 (2/2) 서버와연결되고저장소가등록 14
5. 도구기능소개 5.7 프로젝트공유 (1/4) 예제프로젝트로생성한 Purchase 프로젝트를공유 Java Perspective 로돌아가프로젝트를공유 Java Perspective 로이동 Package Explorer 에서 Purchase Project 우클릭 Team Share Project 선택 ❶ ❷ ❸ ❹ 15
5. 도구기능소개 5.7 프로젝트공유 (2/4) 저장소의위치를설정 현재등록되어있는저장소를선택하거나새로운저장소를생성가능 본매뉴얼에서는 37, 38 페이지에서등록한저장소를사용 Use existing repository location 선택 :pserver:user@localhost:/repo 선택 Next 버튼클릭 Use Project name as module name 선택 Next 버튼클릭 ❽ ❺ ❻ ❼ ❾ 16
5. 도구기능소개 5.7 프로젝트공유 (3/4) 공유할프로젝트를선택 등록시메시지를입력하지않으면종료시확인메시지창이뜸 Purchase Project 선택 Finish 버튼클릭 Commit Files 에서 Finish 버튼클릭 Empty commit comment 메시지에서 Yes 버튼클릭 ❿ ⓫ 17
5. 도구기능소개 5.7 프로젝트공유 (4/4) 저장소에프로젝트가공유 저장소에서공유된프로젝트를확인 18
5. 도구기능소개 5.8 체크아웃 (1/3) 에저장되어있는프로젝트를체크 체크아웃대상폴더우클릭 Check Out As Check out as a project in the workspace 선택 19
5. 도구기능소개 5.8 체크아웃 (2/3) 가져올위치를지정 에저장되어있는프로젝트의소스코드를편집하기위한저장위치를설정 현재위치에다른프로젝트가졲재한다면삭제되고 에저장되어있는프로젝트가체크아웃 20
5. 도구기능소개 5.8 체크아웃 (3/3) 체크아웃결과 Eclipse 를실행하여 와연결하고체크아웃 21
6. 도구활용예제 세부목차 6.1 예제설명 6.2 채팅프로그램구현하기 6.3 채팅프로그램실행하기 1
6. 도구활용예제 6.1 예제소개 (1/2) 예제시스템 : 팀과제 ( 계산기프로젝트 ) 예제에서사용하는계산기의기능은 4가지이며다음과같다 - Sum 기능 : 두개의수를입력받아합연산을수행 - Sub 기능 : 두개의수를입력받아차연산을수행 - Mul 기능 : 두개의수를입력받아곱연산을수행 - Div 기능 : 두개의수를입력받아나누기연산을수행 2
6. 도구활용예제 6.1 예제소개 (2/2) 프로젝트진행중일어날수있는이슈사항 소스코드를여러사람이변경하기때문에소스파일관리가어려움 소스코드를잘못변경하여에러발생시이전소스코드와비교하기가어려움 버전관리, 변경관리가필요하다는것을깨닫고이를도와주는 를도입하여버전및변경을관리하기로결정 도입효과 - 서버를설정하여소스파일을한곳에서관리 - 소스코드변경시버전으로구분하여소스코드를관리 - 3 버전별로소스코드를비교 3
6. 도구활용예제 6.2 프로젝트생성 계산기프로젝트를생성하고소스코드를입력 4
6. 도구활용예제 6.3 프로젝트공유 저장소를등록하고프로젝트를공유 5
6. 도구활용예제 6.4 체크아웃 A 와 B 두사람이 1.1 버전의소스코드를체크아웃 6
6. 도구활용예제 6.5 소스코드수정 (1/2) 팀원 A 는현재작성된소스코드에주석을달아업로드 7
6. 도구활용예제 6.5 소스코드수정 (2/2) 팀원 B 는곱하기 / 나누기소스코드를입력하고업로드 8
6. 도구활용예제 6.6 변경내용비교 업로드시충돌 팀원 B 가변경한소스파일은 1.1 버전 하지만팀원 A 가먼저 1.1 버전의소스파일을수정하여 1.2 버전으로업로드하였기때문에동기화하면버전이다르다는표시와함께변경내용을확인할수있음 9
6. 도구활용예제 6.7 히스토리확인 지금까지수정한파일이버전별로저장되어있으며히스토리를통해이를확인 10
7. FAQ 질문 1) 는 Eclipse 에서만사용할수있습니까? 답변 1 : 아닙니다. Client 를설치하면 Eclipse Plug-in 이아닌하나의프로그램으로사용할수있습니다. 질문 2) 저장소에있는파일들의이름을변경할수있나요? 답변 2 : 아닙니다. 이름을변경하려면파일들을제거한후다시추가해야합니다. 질문 3) 와 RCS(Revision Control System), SVN(Subversion) 과의관계는어떠한관계인가요? 답변 3 : RCS 는 의모태가되는초창기버전관리시스템이고 SVN 은 의핵심개발자들몇몇이 의단점을보완해개발한도구입니다. 1
8. 도구평가 활용성 버전관리, 확인등여러기능을지원하며, 사용하기가용이 범용성 Eclipse 뿐만아니라여러 IDE 에서도많이사용됨 호환성 OS 에독립적이기때문에, 어떤환경에서도 Server 구축이가능 성능 간단하고강력하며단순한기능으로빠른속도를보임 기타 버전충돌관리등을지원 도구평가의견 는버전관리도구로서버전별로소스코드를비교 를사용하면여러사람들이소스코드를수정해야하는경우관리가용이 1
9. 용어정리 본매뉴얼에서사용하고있는용어의정리 Perspective Eclipse 에서제공하는각종에디터와뷰의모음. 현재의작업공갂또는프로젝트를어떤시각으로볼것인가에대한표현 체크아웃 (Checkout) 형상관리중인저장소에있는소스를변경하기위해형상관리서버의저 장소에서소스를가져오는행위를말함. 1