우리가 구축한 CVS Server 사용하기
--> telnet 환경을 기본으로 설명합니다.
1. [/home/자신의계정] 디렉토리 안에 작업할 디렉토리를 정합니다.
( 기존에 있는 경우는 새로 생성할 필요 없음. 이름, 위치 자유임.)
ex) mkdir working_source
2. 해당 디렉토리로 이동합니다.
ex) cd working_source
3. CVS Server에서 체크아웃을 합니다. 현재 우리 서버는 root 계정만 제공하고 있습니다.
( 추후 계정 제공 예정 )
ex) su
passwd : [root의 비밀번호 입력]
cvs -d /home/cvs/ checkout [프로젝트명]
4. 코딩을 합니다. 열심히....
5. 해당 폴더에 위치한 상태에서 CVS 서버에다가 자신이 한 내용을 업데이트 합니다.
ex) cvs commit -m "[코멘트 입력]" [소스파일 이름]
또는 전체 폴더 : cvs commit
6. 만약, 자신이 작업하고 있는 사이에 다른 사람이 최신으로 소스를 업데이트 했다고 알려온다면 업데이트 명령을 사용하여 자신의 폴더에 있는 소스를 최신 내용으로 업데이트 합니다.
ex) cvs update
아래는 좀 더 자세한 명령어입니다. 참고하세요.
//홈페이지에서 퍼 온 내용/////////////////////////////////////////////////////////////////////////////////
--> telnet 환경을 기본으로 설명합니다.
1. [/home/자신의계정] 디렉토리 안에 작업할 디렉토리를 정합니다.
( 기존에 있는 경우는 새로 생성할 필요 없음. 이름, 위치 자유임.)
ex) mkdir working_source
2. 해당 디렉토리로 이동합니다.
ex) cd working_source
3. CVS Server에서 체크아웃을 합니다. 현재 우리 서버는 root 계정만 제공하고 있습니다.
( 추후 계정 제공 예정 )
ex) su
passwd : [root의 비밀번호 입력]
cvs -d /home/cvs/ checkout [프로젝트명]
4. 코딩을 합니다. 열심히....
5. 해당 폴더에 위치한 상태에서 CVS 서버에다가 자신이 한 내용을 업데이트 합니다.
ex) cvs commit -m "[코멘트 입력]" [소스파일 이름]
또는 전체 폴더 : cvs commit
6. 만약, 자신이 작업하고 있는 사이에 다른 사람이 최신으로 소스를 업데이트 했다고 알려온다면 업데이트 명령을 사용하여 자신의 폴더에 있는 소스를 최신 내용으로 업데이트 합니다.
ex) cvs update
아래는 좀 더 자세한 명령어입니다. 참고하세요.
//홈페이지에서 퍼 온 내용/////////////////////////////////////////////////////////////////////////////////
cvs [전역옵션] 명령 [명령옵션]
ex) cvs -q ci -m "memory bug fix"
1. project 생성 : 프로젝트를 생성하고 현재 디렉토리의 소스를 프로젝트로 등록시킨다.
cvs import -m "app project" app_project project start
- 현재 폴더의 디렉토리 구조대로 CVS서버에 프로젝트를 등록 시킨다.
-m : 주석
app_project : CVS 서버에 저장소 디렉토리 이름
2. 프로젝트 받아오기 : 생성된 프로젝트를 받아온다. 이 명령을 수행하기 전에 CVS서버에 로긴되어 있어야 한다.
cvs checkout app_project
cvs co app_project
app_project : CVS 저장소에서 받아올 모듈이름
3. 수정한 내용 CVS에 등록하기
cvs commit [-m "주석" 파일1 파일2]
cvs ci [-m "주석" 파일1 파일2]
괄호 생략가능
4.CVS에 파일 디렉토리 추가
cvs add newfile newdir
cvs ci newfile
5. 소스 업데이트 : 프로젝트 받아오기 후 CVS 서버의 소스를 업데이트 할 때 사용
cvs up : 서버에 등록된 소스와 비교하여 서버소스가 로컬소스 이후인 내용만 업데이트
cvs up -Cd : 로컬에 소스를 무시하고 서버의 소스를 강제로 내려받음
6. CVS 파일 디렉토리 삭제
rm -rf rmfile
cvs remove rmfile
cvs ci
7. 이전버전의 파일로 돌리기
cvs status file // 현재 버전 파악
cvs up -r version -p oldfile > newfile
* -r : roleback -p : 화면에 표시 > redirection으로 파일로 저장함
* 이렇게 변경된 파일을 서버에 등록할 때 에러가 나는 경우가 있다
파일내에 sticky tag가 있어서 그런데 cvs up -A file 을 내리면 스태기 태그가 제거된다.
8. 파일의 로그 보기
cvs log file
9. 파일의 특정부분을 누가 수정했는지 확인
cvs annotate file
cvs ann file
10. 로컬의 파일과 서버의 파일과 차이점 확인
cvs diff file
11. 버전별 파일의 차이점 확인
cvs diff -r 1.5 -r 1.6 file
12. 일정 시점의 소스로 되돌리기
cvs up -D 2005-02-20 05:00 [file]
13. 현재 시점의 소스 태깅
소스를 일정 시점으로 돌리는 것은 문제가 발생할 수 있으므로 release되는 시점의 소스를 기점으로 TAG를 걸어 놓으면 나중에 언제든지 태그를 걸어놓은 시점으로 돌아갈 수 있다.
cvs tag TAG_1 // tag를 검
cvs up -R TAG_1 // tag를 건 시점으로 소스를 되돌림
* tag명령은 현재 디렉토리에만 유효 저장소 디렉토리에 tag를 걸고자 하면
rtag 명령을 이용한다.
TAG cvs

