CVS
- 1. CVS 설치방법
2. CVS 명령어 사용법
- 2.1. 계정생성
2.2. 새 프로젝트는 어떻게 만드나요?
2.3. Login
2.4. Check out
- 2.4.1. 메인버젼 꺼내 오기
2.4.2. 특정버젼 꺼내 오기
2.6. Commit(저장)
2.7. Diff(비교)
2.8. Remove(삭제)
2.9. Add(파일 추가)
2.10. 특정파일무시하기
2.11. branch는 어떻게 만들죠?
2.12. FAQ
1 CVS 설치방법
1.1 Linux 설치
1.1.1 계정생성
- root 계정으로 cvs계정과 cvs 그룹을 생성한다.
$ adduser cvs
1.1.2 xinet.d등록
- /etc/xinet.d에 서비스로 등록한다.
- vi /etc/xinet.d/cvspserver
# default: on
# description: cvs pserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvs pserver
log_on_failure += USERID
}
1.1.3 xinet restart
- cd /etc/init.d/
- ./xinetd restart
xinetd 를 정지함: [ 확인 ]
xinetd (을)를 시작합니다: [ 확인 ]
1.2 test
- telnet localhost 4300
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
cvs [pserver aborted]: bad auth protocol start:
Connection closed by foreign host.
1.3 초기화
- su - cvs
- cvs -d /home/cvs init
- ls -a
. .. CVSROOT
2 CVS 명령어 사용법
2.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
2.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
2.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:
비밀번호를 입력합니다.
2.4 Check out
2.4.1 메인버젼 꺼내 오기
- 현재 개발하고 있는 프로젝트 이름을 입력합니다. 예) mobi
cvs checkout mobi
2.4.2 특정버젼 꺼내 오기
- 메인버젼을 개발 도중 특정 버젼으로 패키지한 버젼의 소소코드를 꺼내오기 싶은경우
cvs checkout -r 버젼_번호 프로젝트명
예)
cvs checkout -r r2-8-0 mobi
2.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
...
2.6 Commit(저장)
- repository로 보낼려면 commit을 수행하면 됩니다.
수정한 파일 하나만 올린다
$ cvs commit 파일명
또는
수정한 모든 파일을 올린다
$ cvs commit
2.7 Diff(비교)
- 수정된 내용을 확인하고 싶은경우
$ cvs diff 파일명
- 수정된 내용을 이전버젼과 비교하고 싶은경우
$ cvs diff -r 1.2 파일명
2.8 Remove(삭제)
- 파일 지우기
$ rm 파일명
$ cvs remove 파일명
$ cvs commit
Removing 파일명;
파일명,v <-- 파일명
new revision: delete; previous revision: 1.1
done
2.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/
$
2.10 특정파일무시하기
- .o 파일 이나 임시 파일을 cvs를 저장하면 컴파일할때마다 update되었다고 표시된다 이런경우 삭제하면 update하는 경우에 다시 내려받기 때문에 cvs에서 리스트 무시하도록 표시하는 기능을 제공한다.
- ※ 주의: .cvsignore파일도 cvs에 add하지 않으면 다른 사용자와 같은 환경을 공유할 수 없다.
$ vi .cvsignore
#무시하고 싶은 파일을 기록한다.
*.obj
*.o
*.tmp
*.log
$ cvs add
$ cvs commit
2.11 branch는 어떻게 만들죠?
- 특정 버젼 쉽게 만드는 법
브랜치를 쉽게 만드는 방법입니다.
$ cvs tag -b BRANCHNAME
이 명령을 실행한 작업소는 앞으로 이 브랜치로 작업을 하게 됩니다. - ※ 특정 버젼을 가지고 오는 방법을 찾조하시면 됩니다.
2.12 FAQ
$ 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
이 명령을 실행한 작업소는 앞으로 이 브랜치로 작업을 하게 됩니다.
댓글 없음:
댓글 쓰기