간략한 CVS사용법 정리
- 작성자
- 고친과정
2010년 8월 18일 : 처음씀
사용방법
- Branch 사용에 앞서서 알아야 할 정리사항
- Login
cvs -d:pserver:[<user_id>[:<password>]@]<host>[:<port>]/<repository_root> login
- Import
cvs import -I ! <module_name> <vender_tag> <release_tag>
- Check out
cvs co [-r <revision or tag>] [-d <directory>] <module_name>
- Update
cvs update [-r <revision or tag>]
- Commit
cvs commit [-m "<comment>"]
- Create release branch
cvs rtag -b <branch_tag> <module_name>
- Create tag
cvs tag <tag>
- Merge branch
cvs update [-j <revision> [...]]
- Login
- 만약 myapp 라는 프로젝트가 개발이 되고 있고 이 프로젝트는 CVS repository root 가 "/cvsroot" 라고 가정하고 설명합니다. 이제 myapp 의 소스는 ${HOME}/project/myapp 라는 디렉토리에 있습니다.
- 첫번째: CVS login (CVS server 는 "pserver" 방식이고 ServerIP는 "192.168.0.2" 이며 계정명은 "test" 이며 암호는 "1234" 일때)
- 방식 #1 (이 방법을 기준으로 다음 절차를 설명할것입니다.)
export CVSROOT=:pserver:test:1234@192.168.0.2:/cvsroot cvs login
- 방식 #2
cvs -d:pserver:test:1234@192.168.0.2:/cvsroot login
- 방식 #1 (이 방법을 기준으로 다음 절차를 설명할것입니다.)
- 두번째: CVS 에 첫 등록하기 (CVS에 "mysource" module 로 등록하고 vender_tag 는 "mycompany" 라고 하고 release_tag 는 "start"라고 하겠습니다.)
cd ${HOME}/project/mzapp cvs import -I ! mysource mycompany start cd .. mv myapp myapp_org cvs co -d myapp mysource
- 세번째: CVS release branch 만들기 (이때 branch_tag 는 "release_mysource" 라고 하겠습니다.)
cvs rtag -b release_myapp mysource
- 네번째: 새로운 release branch로부터 개발하기 (이때 이 새로운 branch를 "${HOME}/project/release_myapp" 라는 디렉토리 받는다고 가정)
- 방법 #1 (새로운 branch를 독립적으로 디렉토리를 유지하고자 할때, 이 방법을 기준으로 다음절차를 설명할것입니다.)
cd ${HOME}/project cvs co -r release_myapp -d release_myapp mysource
- 방법 #2-1 (branch를 현재 local CVS 저장소에 적용하는 방법)
cd ${HOME}/project/myapp cvs update -r release_myapp
- 방법 #2-2 (#2-1 의 branch 적용된것을 원래의 tag로 전환하는 방법)
cd ${HOME}/project/myapp cvs update -A
- 방법 #1 (새로운 branch를 독립적으로 디렉토리를 유지하고자 할때, 이 방법을 기준으로 다음절차를 설명할것입니다.)
- 다섯번째: Branch된 것을 Main 에 합류시키기 (이 경우 branch된 "release_myapp" 를 정합하게 할것입니다.)
cd ${HOME}/project/myapp cvs update cvs commit cvs update -j release_myapp cvs commit
- 첫번째: CVS login (CVS server 는 "pserver" 방식이고 ServerIP는 "192.168.0.2" 이며 계정명은 "test" 이며 암호는 "1234" 일때)