160 likes | 419 Views
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.
E N D
CVS(Concurrent Version System) GunWoo Lee Pllab Dept. of CSE. PNU 2006. 01.12 CVS(Concurrent Version System)
Contents • Introduction • Install • Login / Logout • Upload / Download • Update • Add / Remove • Etc command • About TortoiseCVS • Conclusion / Reference CVS(Concurrent Version System)
1.Introduction of CVS • 공동으로 프로젝트를 수행할 때 발생할 수 있는 소스 충돌이나 소스 동기화 문제들의 해결. • 프로젝트의 성격상 모듈화 개발이 어려워 하나의 소스를 공유하여 개발하는 경우 적합. root 익명 User User cvs_user cvs_user User User CVS Server CVS(Concurrent Version System)
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 CVS(Concurrent Version System)
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:cvs@leoric99.dnip.net:2401/home/cvs login • Logoutcvs logout CVS(Concurrent Version System)
3.Client에서의 CVS 사용법(계속) • Uploadcvs import –m “Message” [Project_Name] [Bend_Tag] [Release_Tag]ex)cvs import –m “test” test test first※-d 옵션을 함께 사용하면 하위 폴더까지 모두 upload가 된다. CVS(Concurrent Version System)
3.Client에서의 CVS 사용법(계속) • Downloadcvs checkout(co) [Project_Name]ex)cvs checkout(co) test※하위 폴더까지는 download되지 않는다. 하지만 TortoiseCVS에서는 가능하다. CVS(Concurrent Version System)
3.Client에서의 CVS 사용법(계속) • 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를 하여 버전을 맞추어 주는 것이 중요. CVS(Concurrent Version System)
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를 이용한다. CVS(Concurrent Version System)
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)까지 수행이 되어야 한다. CVS(Concurrent Version System)
3.Client에서의 CVS 사용법(계속) • Remove DirectoryCVS_System에서 직접 지워야 함. • 복원①cvs status [file_name]②cvs up –r [version] –p [file_name] > [file_name]③cvs update CVS(Concurrent Version System)
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] CVS(Concurrent Version System)
4.CVS의 장·단점 • 장점-System구축이 쉬움.-사용자별 권한 부여가 용이.-자동 Version관리 뿐 아니라 백업의 기능도 수행. • 단점-Directory의 생성과 제거-Web Interfacing-atom commit을 미지원 CVS(Concurrent Version System)
5.Windows 기반의 CVS Tool • TortoiseCVS-GUI를 기반으로 하는 CVS Tool-한글 지원-Drop Menu방식으로 사용이 용이 CVS(Concurrent Version System)
6.Conclusion • Linux를 기반으로 하는 System에서는 package로 CVS가 제공되기 때문에 설치 및 관리가 쉬움. • 배우기 쉬워 사용에 익숙해진다면 Project의 Version관리 및 release가 용이할 거 같음. • Web기반의 Interfacing이 아니라 consol환경 기반의 Interfacing제공이 아쉬움. • CVS를 사용해보고 여러 단점들의 개선을 원한다면 Subversion-Tool의 사용을 고려. • Tortoisecvs는 Interface뿐 아니라 directory관련 단점들을 모두 보완해 준다. CVS(Concurrent Version System)
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/ CVS(Concurrent Version System)