py-rrdtool 프로젝트를 호스트하고 있던 사바나가 데비안과 같은 방법으로 뚫리는 바람에 서비스가 아직도 완전히 정상복구 되지 않고 있습니다. 그런데, 어떤 개발자가 py-rrdtool 프로젝트에 개발자로 참여하고 싶다고 해서 (제 개인 프로젝트 최초로 외국인 개발자가! -ㅇ-;) 그래서 그냥 소스포지로 옮기기로 했습니다.
그런데, 옮겨다닐 때 마다 리비전도 잃어버리고 CVS 로그들도 다 잃어버리는게 좀 그래서, 관리자한테 요청을 할 까 생각도 해봤는데, 처리도 엄청 느리고 귀찮을 것 같아서, 그냥 손으로 임포트를 해버렸습니다. (cvs import가 아니라 rcsfile레벨 import)
우선, 임포트를 준비하기 위해서, 사바나에서 RCS파일들을 받아와야하는데, ftp://ftp.gnu.org/savannah/ 에 고스란히 다 보관이 되어있어서 거기서 바로 받아왔습니다. 흐흣. 거기서 임포트할 py-rrdtool 모듈 레포지트리만 뽑아서 우선 shar 명령을 이용해서 쉘 아카이브를 만듭니다.
1 |
% shar `find py-rrdtool` > savannahimport |
요렇게 해서 생성된 쉘 아카이브는 권한 조절이 안 되기 때문에 끝에 chmod를 적당히 넣어서, CVS에서 쓰는 퍼미션인 디렉토리 775, 파일 664 퍼미션으로 맞춰줘야합니다. 그 다음에는, savannahimport 스크립트를 CVSROOT에 넣고 임포트합니다.
1 2 3 |
CVSROOT% cvs add savannahimport CVSROOT% echo "savannahimport" >> checkoutlist CVSROOT% cvs ci |
이렇게 되면 CVS서버에서 $CVSROOT/savannahimport 스크립트만 실행해주면 바로 임포트되는 상태가 되는데, 요걸 실행하기 위해서 loginfo 꽁수로 다음 줄을 CVSROOT/loginfo 끝줄에 넣습니다.
1 |
DEFAULT (cd $CVSROOT;/bin/sh $CVSROOT/CVSROOT/savannahimport) |
이렇게 하면, 그냥 loginfo가 커밋되고 실행은 안 되는데, 아까 그 줄을 지우고 다시 커밋하면 짠! 하고 임포트 스크립트가 실행됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 |
Checking in loginfo; /cvsroot/py-rrdtool/CVSROOT/loginfo,v <-- loginfo new revision: 1.3; previous revision: 1.2 done c - py-rrdtool x - py-rrdtool/ACKNOWLEDGEMENT,v x - py-rrdtool/AUTHORS,v 중략.. x - py-rrdtool/src/_rrdtoolmodule.c,v x - py-rrdtool/src/rrd_extra.h,v x - py-rrdtool/src/rrd_format.h,v cvs server: Rebuilding administrative file database |
흐흐흐. 그리고, 아까 임시로 썼던 savannahimport 스크립트를 지우고 checkoutlist에서 빼주면 간단히 임포트는 완료!
그런데, 이건 커밋 스크립트에서 /bin/sh 실행이 허용된 CVS 서버들에서만 가능하기 때문에, 사바나나 OSS에서는 사용이 불가능하고, KLDP.net, 소스포지, BerliOS같이 모든 스크립트 실행이 허용된 곳에서만 사용할 수 있습니다.