2009년 8월 21일 금요일

[Linux-CVS-3] CVS 클라이언트 작업1 - 쉘

이제 서버에서 할 수 있는 대부분의 설정은 끝났다고 보면 된다.

 

클라이언트 작업이 필요한데, 익히 알고 있는 checkout, update, commit 등이 그것이다.

 

많은 사람들이 eclipse에서 작업하기도 하고 쉘에서 작업하기도 하는데,

 

먼저 쉘에서 하는 것에 대해서 알아보겠다.

 

 

CVS 계정 로그인

 

첫 번째에서 cvs 계정을 생성했었는데, 예를 들어서 user1 이라고 해보자.

제일 먼저 해야하는 것은 당연히 cvs 로그인이다.

물론 로컬 디스크에서 작업할 때는 로그인이 필요없다. root가 모든 권한을 가지고 있기 때문이다.

 

$ cvs -d:pserver:user1@myhost.com:/home/cvs login


차례대로 설명해보면,

1. -d : 저장소의 위치를 나타낼 때 쓰는 옵션

2. pserver : pserver 프로토콜

3. user1 : 클라이언트의 cvs 계정

4. myhost.com : cvs 서버의 host

5. /home/cvs : cvs 서버의 repository 경로

6. login : 로그인 명령어

 

로그인할 때마다 저 긴 명령어를 타이핑하려면 힘들 것이다. 그래서 환경 변수로 등록해두면 편하다.

 

$ export CVSROOT=:pserver:user1@myhost.com:/home/cvs
$ cvs login

 

 

 

checkout 명령어

 

checkout 명령어는 cvs로 작업 중인 프로젝트의 복사본을 클라이언트에게 가지고 오는 것이다.

클라이언트에서 원하는 경로에 checkout 명령어를 실행시킨다.

 

$ cd /home/client/
$ cvs checkout project_name
$ ls /home/client/

project_name

 

cvs checkout 뒤에는 원하는 프로젝트 이름을 적는다.
ls 명령어로 디렉토리 내용을 보면 해당 프로젝트 이름으로 디렉토리가 생성되어 있는 것을

확인할 수 있다. 그리고 그 디렉토리 아래에는 프로젝트 파일들이 모두 복사되어 있을 것이다.

checkout 명령어는 프로젝트 작업 시작 시 한 번만 실행시켜 주면 된다.

 

 

 

CVS로 프로젝트 작업하기

 

1. update

 

update 명령어는 실제 프로젝트 진행 시 다른 팀원이 변경한 데이터를 자신의 프로젝트에 적용시키는

작업이다.

 

클라이언트에서 진행 중인 프로젝트 내의 update를 원하는 경로에서 명령어를 실행시키면 된다.

예컨대, 클라이언트 프로젝트에서 갱신하고 싶은 디렉토리가 project_name/my_directory1이라고

하면,

 

$ cd project_name
$ cvs update my_directory1


이렇게 실행시키면 된다.

물론 그냥

 

$ cvs update


라고만 해도 실행된다. 이것은 현재 디렉토리 내의 하위 경로까지 모두 update 하는 명령어이다.

클라이언트의 프로젝트 정보가 서버 상의 정보로 완전히 갱신이 되지 않았을 경우, commit 명령이

실행되지 않으므로 소스 수정 전에 반드시 update 명령을 수행하는 것이 좋다.

 

 

2. add & remove

 

파일이나 디렉토리를 추가할 때도 cvs 명령어를 사용해야 한다.

예를 들면 project_name 디렉토리 아래에 my_directory2 디렉토리를 추가하고자 한다면,

 

$ mkdir project_name/my_directory2
$ cvs add project_name/my_directory2


이렇게 하면 된다. 파일도 마찬가지이다.

 

파일을 삭제하는 경우도 추가 시와 유사하다.

가령, project_name 디렉토리 아래의 my.jsp 파일을 삭제한다고 하자.

 

$ rm project_name/my.jsp
$ cvs remove project_name/my.jsp


그러나 디렉토리를 삭제하는 경우는 좀 다른데, 아까 생성했던 project_name/my_directory2

삭제한다고 했을 때, 클라이언트의 프로젝트에서 해당 디렉토리를 삭제 후 직접 CVS 서버로

가서 해당 디렉토리를 삭제해줘야 한다.

 

 

3. status

 

staus 명령어는 현재 버전을 확인하는 명령어이다.

 

$ cvs status project_name/index.jsp
===================================================================
File: index.jsp         Status: Up-to-date
   Working revision:    1.3     Fri Aug 21 05:14:03 2009
   Repository revision: 1.3     /home/cvs/project_name/index.jsp,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)


이런 식으로 출력된다.

뒤에 파일 이름이나 디렉토리 이름을 적지 않으면 프로젝트 내의 모든 파일에 대한 정보가

출력된다.

 

 

4. commit

 

commit 명령어는 클라이언트에서 수정한 정보를 서버에 등록시키는 것이다.

클라이어트에서 project_name/index.jsp 파일을 수정했을 경우,

 

$ cvs commit project_name/index.jsp


이렇게 실행시키면 된다. 위의 명령어들과 마찬가지로 뒤에 파일 이름이나 디렉토리 경로를

쓰지 않으면 프로젝트 내의 모든 파일의 수정된 정보가 업로드된다.

 

 

 

이상으로 가장 많이 쓰이는 명령어들을 살펴 보았다.

사용해보니 역시 쉘보다는 이클립스가 편한 것 같다.

대부분의 개발자들이 그렇게 생각하겠지만 ^^;

 

 

 

참고1 : CVS User Guide

참고2 : cvs 설정 및 사용법

댓글 없음:

댓글 쓰기