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

CVS(Concurrent Version System)

Jan 24, 2016

Download

Documents

kalil

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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/