적용 패키지 작성을 위해 수정된 파일 목록을 추출 할 방법을 찾아 보기로 했다.
업무 때문에 소스 관리를 CVS 로 하고 있다. CVS의 단점은 개별 파일이력은 확인 할 수 있는데,
수정된 파일 목록을 뽑기가 쉽지 않다는 것이다.
구글링을 해보니 CVS에서 Commit 시점에 뭔가 처리할 수 있다는 것을 알았다.
먼저, CVS 서버에 접속해서 저장소의 CVSROOT 디렉토리를 보자
-rwxrwxr-- 1 cvs cvs 544 4월 22 09:23 checkoutlist
-rwxrwxr-- 1 cvs cvs 694 3월 21 2009 checkoutlist,v
-rwxrwxr-- 1 cvs cvs 882 4월 26 16:03 commitinfo
-rwxrwxr-- 1 cvs cvs 959 3월 21 2009 commitinfo,v
-rwxrwxr-- 1 cvs cvs 993 3월 21 2009 config
-rwxrwxr-- 1 cvs cvs 1192 3월 21 2009 config,v
-rwxrwxr-- 1 cvs cvs 602 2월 8 16:32 cvswrappers
-rwxrwxr-- 1 cvs cvs 801 3월 21 2009 cvswrappers,v
-rwxrwxr-- 1 cvs cvs 1025 3월 21 2009 editinfo
-rwxrwxr-- 1 cvs cvs 1224 3월 21 2009 editinfo,v
-rwxrwxr-- 1 cvs cvs 292081967 4월 29 18:14 history
-rwxrwxr-- 1 cvs cvs 1245 4월 21 11:32 loginfo
-rwxrwxr-- 1 cvs cvs 1367 3월 21 2009 loginfo,v
-rwxrwxr-- 1 cvs cvs 1151 3월 21 2009 modules
-rwxrwxr-- 1 cvs cvs 1350 3월 21 2009 modules,v
-rwxrwxr-- 1 cvs cvs 564 3월 21 2009 notify
-rwxrwxr-- 1 cvs cvs 763 3월 21 2009 notify,v
-rwxrwxr-- 1 cvs cvs 640 4월 25 12:43 passwd
-rwxrwxr-- 1 cvs cvs 649 3월 21 2009 rcsinfo
-rwxrwxr-- 1 cvs cvs 848 3월 21 2009 rcsinfo,v
-rwxrwxr-- 1 cvs cvs 879 3월 21 2009 taginfo
-rwxrwxr-- 1 cvs cvs 1078 3월 21 2009 taginfo,v
-rwxrwxrw- 1 cvs cvs 187 11월 10 17:15 val-tags
-rwxrwxr-- 1 cvs cvs 1026 3월 21 2009 verifymsg
-rwxrwxr-- 1 cvs cvs 1225 3월 21 2009 verifymsg,v
위와 같은 파일들을 볼 수 있는데..
여기서 commitinfo 란 파일이 CVS에서 Commit 하기 바로전에 실행되는 파일이다.
방향은 정해졌다.
작업 구성은 아래와 같은 순서로 하기로 했다.
1. CVS가 Commit 되는 시점에 파일명을 DB에 저장한다.
-> CVSROOT/commitinfo에 등록할 쉘 스크립트를 작성. 2. 저장된 DB를 조회할 간단한 WEB Page 제작
-> 평소 관심을 갖고 있던, jQuery를 이용.
[ 1. CVS가 Commit 되는 시점에 파일명을 DB에 저장한다 ]
commitinfo 파일에 아래와 같이 내용을 추가 한다.
$ vi CVSROOT/commitinfo
ALL /home/cvs/myproject/CVSROOT/cvscommitlog.sh
DB에 테이블을 생성 한다.
CREATE TABLE CVS_COMMIT
(
SEQ NUMBER(10) NOT NULL,
USERID VARCHAR2(20) NOT NULL,
REG_DATE DATE DEFAULT SYSDATE,
PROJECT VARCHAR2(50) NOT NULL,
FILENAME VARCHAR2(500) NOT NULL
);
* index는 REG_DATE, TO_CHAR(reg_date, 'YYYY/MM/DDHH24:MI'), USERID, PROJECT 를 걸었다.