16
CVS(Concurrent Version System ) 1 CVS(Concurrent Version Sys tem) GunWoo Lee Pllab Dept. of CSE. PNU 2006. 01.12

CVS(Concurrent Version System)

  • Upload
    kalil

  • View
    83

  • Download
    0

Embed Size (px)

DESCRIPTION

CVS(Concurrent Version System). GunWoo Lee Pllab Dept. of CSE. PNU 2006. 01.12. Contents. Introduction Install Login / Logout Upload / Download Update Add / Remove Etc command About TortoiseCVS Conclusion / Reference. 1.Introduction of CVS. - PowerPoint PPT Presentation

Citation preview

Page 1: CVS(Concurrent Version System)

CVS(Concurrent Version System) 1

CVS(Concurrent Version System)

GunWoo LeePllab Dept. of CSE. PNU

2006. 01.12

Page 2: CVS(Concurrent Version System)

CVS(Concurrent Version System) 2

Contents

• Introduction• Install• Login / Logout• Upload / Download• Update• Add / Remove• Etc command• About TortoiseCVS• Conclusion / Reference

Page 3: CVS(Concurrent Version System)

CVS(Concurrent Version System) 3

1.Introduction of CVS

• 공동으로 프로젝트를 수행할 때 발생할 수 있는 소스 충돌이나 소스 동기화 문제들의 해결 .

• 프로젝트의 성격상 모듈화 개발이 어려워 하나의 소스를 공유하여 개발하는 경우 적합 .

root익명

cvs_user cvs_userCVS Server

User User

User User

Page 4: CVS(Concurrent Version System)

CVS(Concurrent Version System) 4

2.System 설정• Test Server/Client

-Linux Debian Sarge 의 동일한 Server/Client• 설정

1.Debian Package 관리툴 aptitude 를 이용하여 CVS(1.12.9) 를 설치2.CVS 사용자 추가3.Directory 생성 및 초기화4.inetd Daemon restart

Page 5: CVS(Concurrent Version System)

CVS(Concurrent Version System) 5

3.Client 에서의 CVS 사용법 ( 계속 )

• Logincvs –d :pserver:usr_name@cvs_server_addr(addr:PortNo:Path) login※.bash_profile 에 옵션 인자를 환경 변수로 추가-export CVSROOT= :pserver:usr_name@cvs_server_addr(addr:PortNo:Path)ex)cvs –d :pserver:[email protected]:2401/home/cvs login

• Logoutcvs logout

Page 6: CVS(Concurrent Version System)

CVS(Concurrent Version System) 6

3.Client 에서의 CVS 사용법 ( 계속 )

• Uploadcvs import –m “Message” [Project_Name] [Bend_Tag] [Release_Tag]ex)cvs import –m “test” test test first※-d 옵션을 함께 사용하면 하위 폴더까지 모두 upload 가 된다 .

Page 7: CVS(Concurrent Version System)

CVS(Concurrent Version System) 7

3.Client 에서의 CVS 사용법 ( 계속 )

• Downloadcvs checkout(co) [Project_Name]ex)cvs checkout(co) test※ 하위 폴더까지는 download 되지 않는다 . 하지만 TortoiseCVS 에서는 가능하다 .

Page 8: CVS(Concurrent Version System)

CVS(Concurrent Version System) 8

• Update(Client->Server)cvs commit(ci) –m “Update_content” [file_name]ex)cvs commit(ci) –m “main.c 주석 추가” main.c

• Update(Client<-Server)cvs update(up) ※Sever 에 저장된 파일의 버전이 더 높다면 Client 에서는 commit 할 수 없다 . 따라서 항상 update 를 하여 버전을 맞추어 주는 것이 중요 .

3.Client 에서의 CVS 사용법 ( 계속 )

Page 9: CVS(Concurrent Version System)

CVS(Concurrent Version System) 9

3.Client 에서의 CVS 사용법 ( 계속 )

• Add Filecvs add [newfile]※add 명령어는 바로 cvs_server 로 해당 파일을 add 하는 것이 아니라 client 의 CVS/Entries 파일에 추가만 시켜둔다 . 실제 파일의 add 는 Update(commit) 까지 수행이 되어야 한다 .

• Add DirectoryFile 을 add 하는 방식과 동일하지만 아직 cvs 에서는 directory_tree를 add 하는 기능이 없어 보통 script 를 이용한다 .

F:\Documents\pllab\CVS¹ßÇ¥ ÀÚ·á\cvs_add_d

Page 10: CVS(Concurrent Version System)

CVS(Concurrent Version System) 10

3.Client 에서의 CVS 사용법 ( 계속 )

• Remove File①Client 에서 file 삭제 (rm file_name)②cvs remove [file_name]③cvs ci –m “delete_content” ※remove 명령어 또한 바로 cvs_server 의 해당 파일을 제거하는 것이 아니라 복원을 위해 cvs_server 의 Attic 폴더로 옮겨둔다 . 마찬가지로 실제 파일의 remove 는 Update(commit) 까지 수행이 되어야 한다 .

Page 11: CVS(Concurrent Version System)

CVS(Concurrent Version System) 11

3.Client 에서의 CVS 사용법 ( 계속 )

• Remove DirectoryCVS_System 에서 직접 지워야 함 .

• 복원① cvs status [file_name]②cvs up –r [version] –p [file_name] > [file_name]③cvs update

Page 12: CVS(Concurrent Version System)

CVS(Concurrent Version System) 12

3.Client 에서의 CVS 사용법 ( 계속 )

• 기타 명령어- 버전 변경cvs up –r [previous_version] –p [file_name] > [file_name]-log 확인cvs logcvs annotate(ann) [file_name]-version 별 차이점 확인cvs diff –r [previos_version] –r [current_version] [file_name]cvs diff –r HEAD [file_name]-sticky_tag 제거cvs up –A [file_name]- 특정 시점의 표시cvs tag [tag_name]

Page 13: CVS(Concurrent Version System)

CVS(Concurrent Version System) 13

4.CVS 의 장 · 단점• 장점

-System 구축이 쉬움 .- 사용자별 권한 부여가 용이 .- 자동 Version 관리 뿐 아니라 백업의 기능도 수행 .

• 단점-Directory 의 생성과 제거-Web Interfacing-atom commit 을 미지원

Page 14: CVS(Concurrent Version System)

CVS(Concurrent Version System) 14

5.Windows 기반의 CVS Tool

• TortoiseCVS-GUI 를 기반으로 하는 CVS Tool- 한글 지원-Drop Menu 방식으로 사용이 용이

Page 15: CVS(Concurrent Version System)

CVS(Concurrent Version System) 15

6.Conclusion

• Linux 를 기반으로 하는 System 에서는 package로 CVS 가 제공되기 때문에 설치 및 관리가 쉬움 .

• 배우기 쉬워 사용에 익숙해진다면 Project 의 Version 관리 및 release 가 용이할 거 같음 .

• Web 기반의 Interfacing 이 아니라 consol 환경 기반의 Interfacing 제공이 아쉬움 .

• CVS 를 사용해보고 여러 단점들의 개선을 원한다면 Subversion-Tool 의 사용을 고려 .

• Tortoisecvs 는 Interface 뿐 아니라 directory 관련 단점들을 모두 보완해 준다 .

Page 16: CVS(Concurrent Version System)

CVS(Concurrent Version System) 16

7.Reference

• Book- 유닉스 · 리눅스 프로그래밍 필수 유틸리티- 버전관리 using CVS

• WWW-http://www.oops.org/lecture.php?c=black&s=cvs-http://www.ximbiot.com/-http://www.wincvs.org/-http://www.tortoisecvs.org/