- 1. CVS 명령어 사용법
- 1.1. 계정생성
1.2. 새 프로젝트는 어떻게 만드나요?
1.3. Login
1.4. Check out
- 1.4.1. 메인버젼 꺼내 오기
1.4.2. 특정버젼 꺼내 오기
1.6. Commit(저장)
1.7. Diff(비교)
1.8. Remove(삭제)
1.9. Add(파일 추가)
1.10. branch는 어떻게 만들죠?
1 CVS 명령어 사용법
1.1 계정생성
- cvs가 설치되어있는 위치 CVSROOT의 passwd파일에 사용자 ID와 PASSWORD를 입력한다.
$ cd /home/cvs/CVSROOT/
$ mkpasswd
makepasswd - generates system password entry for cvsd
usage: ./mkpasswd user password
$ ./mkpasswd test test123
makepasswd - generates system password entry for cvsd
put this line into /CVSROOT/passwd
test:xB0y/2RhqIHx6:cvs
# passwd파일을 open후 "test:xB0y/2RhqIHx6:cvs"이 라인을 복사하여 추가한다.
$ vi passwd
1.2 새 프로젝트는 어떻게 만드나요?
$ ls proj/
README a.c a.h
$ cd proj/
$ cvs import -m "this is the project" proj VENDOR INIT
$ ls /var/cvsroot/
CVSROOT/ proj/
$ ls /var/cvsroot/proj/
README,v a.c,v a.h,v
1.3 Login
- 최초 로그인 시
touch ~/.cvslogin
- CVSROOT설정
bash, ksh
export CVSROOT=:pserver:xxx@test.mobigen.com:/home/cvs
csh
setenv CVSROOT :pserver:xxx@test.mobigen.com:/home/cvs
xxx부분에 계정명을 입력한다.
예)
$ export CVSROOT=:pserver:eek@test.mobigen.com:/home/cvs - cvs 를 사용하기 위해서 cvs에 접근하기 위한 권한을 얻는 방법으로 로그인을 합니다. 계정을 만드는 방법은 추후에 내용을 추가 하겠습니다.
$ cvs login
Logging in to :pserver:eek@test.mobigen.com:2401/home/cvs
CVS password:
비밀번호를 입력합니다.
1.4 Check out
1.4.1 메인버젼 꺼내 오기
- 현재 개발하고 있는 프로젝트 이름을 입력합니다. 예) mobi
cvs checkout mobi
1.4.2 특정버젼 꺼내 오기
- 메인버젼을 개발 도중 특정 버젼으로 패키지한 버젼의 소소코드를 꺼내오기 싶은경우
cvs checkout -r 버젼_번호 프로젝트명
예)
cvs checkout -r r2-8-0 mobi
1.5 Update
- checkout한경우 변경된 내용만 받아 올 수 있도록 하는 기능
- check out한 디렉토리로 이동하여 명령을 실행한다.
- U, P 표시는 cvs에서 수정이 된 파일 기존에 파일이 변경됨
- M 표시는 사용자가 파일을 수정한 경우 M flag가 표시됨
- C 표시는 사용자가 파일을 수정한 경우 CVS 메인 버젼과 충돌이 생긴 경우
- 충돌 후 해결을 참조
- ? 표시는 CVS에 저장 되어 있지 않는 파일 또는 디렉토리
- A 표시는 CVS에 사용자기 추가하기 전 상태 삭제를 적용하기 위해서는 cvs commit명령을 수행한다.
- R 표시는 CVS에 있는 파일을 삭제하기 전 상태 삭제를 적용하기 위해서는 cvs commit 명령을 수행한다.
$ cvs update
? Makefile
cvs server: Updating .
...
U htable.C
U htable.h
...
1.6 Commit(저장)
- repository로 보낼려면 commit을 수행하면 됩니다.
수정한 파일 하나만 올린다
$ cvs commit 파일명
또는
수정한 모든 파일을 올린다
$ cvs commit
1.7 Diff(비교)
- 수정된 내용을 확인하고 싶은경우
$ cvs diff 파일명
- 수정된 내용을 이전버젼과 비교하고 싶은경우
$ cvs diff -r 1.2 파일명
1.8 Remove(삭제)
- 파일 지우기
$ rm 파일명
$ cvs remove 파일명
$ cvs commit
Removing 파일명;
파일명,v <-- 파일명
new revision: delete; previous revision: 1.1
done
1.9 Add(파일 추가)
- 파일 추가
$ cvs update
? add_file <-- 아직 추가 되어있진 않은 상태로 보인다.
$ cvs add add_file1 [add_file2] [add_file3] [add_file4]
$ cvs update
A add_file <-- 추가되기 위한 전단계
$ cvs commit add_file <-- 파일추가 - Dir 추가
- Dir을 추가 하고 앞에 있는 파일은 파일 추가 절차에 따른다.
$ mkdir a_dir
$ cvs add a_dir
$ cvs commit a_dir
$ cd a_dir
$ ls
CVS/
$
1.10 branch는 어떻게 만들죠?
- 특정 버젼 쉽게 만드는 법
브랜치를 쉽게 만드는 방법입니다.
$ cvs tag -b BRANCHNAME
이 명령을 실행한 작업소는 앞으로 이 브랜치로 작업을 하게 됩니다. - ※ 특정 버젼을 가지고 오는 방법을 찾조하시면 됩니다.
$ cvs checkout project; cd project
$ cvs update foo.c
$ cvs tag release-1 .
$ cd ..; cvs release -d project
$ cvs checkout -r release-1 project
$ cvs release -d project
$ cvs rtag -b -r release-1 release-1-patches project
$ cvs checkout -r release-1-patches project
$ cvs commit -m "Fixed printf bug" foo.c
$ cd ..; cvs release -d project
--------------------------------------------------------------------------------
cvs를 사용할 때 Branch를 해서 버젼을 만들고 메인 버젼이 올라가면 다시 메인버젼과 머지를 하고.. 등의 작업을 수행할 때, 먼저 브랜치를 할 파일들에 태그를 달아주고 태그를 기준으로 브랜치를 만드는 것이 편한 것 같습니다.
명령어는 다음과 같습니다.
cvs rtag -r arab -b arab_xxx ggg
이렇게 하면 ggg라는 프로젝트에서 arab 태그가 붙은 것을 arab_xxx 브랜치로 작성하겠다. 라는 의미가 됩니다. 태그는 먼저 달아주어야 하겠지요.
그리고 태그와 브랜치는 다르다는 점을 미리 아시면 좋겠고.. 만일 wincvs를 사용하신다면 graph를 보시게 되면 tag는 검정색 얇은 선 브랜치는 파란색 굵은 선으로 나뉘는 것을 알 수 있습니다. --최성우 / eatingstars.com
브랜치를 쉽게 만드는 방법입니다.
$ cvs tag -b BRANCHNAME
이 명령을 실행한 작업소는 앞으로 이 브랜치로 작업을 하게 됩니다.
댓글
댓글 쓰기