CVS Web Interface part2
http://kldp.org/node/87760 에서 일전에 CVS Web interface 를 만들고 있다고 광고(?)를 한 적이 있었습니다. 그 이후로 조용히 개발을 계속해왔는데.. 마지막에 local repository 를 처리하는 부분에서 꼬여서 푸느라 좀 애를 먹었습니다.
나름대로 출시는 할 만하다고 생각되어 공개를 합니다.
이 프로그램의 특징으로는
1. 기본적으로 FreeBSD 에서 배포하는 CVS Web 의 기본적인 기능을 지원 (long colored diff 만 지원 안합니다. colored diff 만들다가 너무 머리아파서 포기 --) 2. remote(cvs protocol) / local (rcs) repository 지원 (rlog 또는 rls 이용) 3. parsing 속도 개선 (대신 코드가 더러워 졌습니다. T.T) 4. 언어셋 문제 처리 (iconv extension) 5. Any Browser (XHML 1.0/CSS 2 validate) 6. i18N 지원 (gettext extension 또는 cvsd 내장 gettext)
정도 입니다. 자세한 사항은 http://my.oops.org/114 참조 하시고.. 제일 머리아프고 이 프로그램을 만들도록 한 부분은 2번, 3번, 4번 사항입니다. 이 중에서 4번이 가장 머리가 아픈 문제였는데.. 다음의 예를 들어서 보면 확실히 차이가 나게 될 겁니다.
1. Web interface 의 charset 과 저장소 문서의 charset 이 맞지 않는 경우
와 같이 깨지는 문제가 발생하게 됩니다. Web Interface 는 UTF8 이고 문서는 EUC-KR 이기 때문이죠. 하지만 OOPS-CVSd 에서는
http://cvs.oops.org/?cvsroot=KLDPnet:WikiPlus&module=wikiplus&file=wplus.py,v&rev=1.32
와 같이 맞출 수가 있습니다. Web UI는 EUC-KR이고 저장소 문서는 UTF-8 입니다.
WikiPlus 프로젝트가 개발에 참 많이 도움이 되었는데.. (따로 감사드립니다. ^^) 참 재미있게도 WikiPlus 는 UTF8 을 사용하도록 규정을 하였는데, CVS commit comment 에는 UTF8과 EUC-KR이 섞여 있있습니다.
http://kldp.net/plugins/scmcvs/cvsweb.php/wikiplus/config.py?cvsroot=wikiplus
문서를 보시면.. 잘나오다가 이전에는 깨지는 것을 확인할 수 있습니다. 이런 부분까지도
http://cvs.oops.org/?cvsroot=KLDPnet:WikiPlus&module=wikiplus&file=config.py,v
와같이 픽스를 하고 있는 것이 가장 신경쓴 부분입니다. 이 예는 동일한 페이지를 CVS Web으로 본것과 OOPS-CVSd 로 본것을 비교한 것입니다.
데모는 http://cvs.oops.org 에서 확인하실 수 있습니다.
댓글
흠.. GPL 로 배포
흠.. GPL 로 배포 안하려고 하기가 정말 힘들군요. 그 수많은 코드들을 바라보며 군침을 흘리다가 GPL 을 포기하기 위해서 눈물을 머금고 다시 다 써내려가야 한다는...
얼마전 중국산 없이 살기.. 라는 프로젝트인가를 TV에서 한적이 있는데.. 이 GPL 이 꼭 중국산 같은 느낌이 들더군요 --; 쓰면 편한데.. GPL이 싫으니 쓰지는 못하고..
아..참고로 CVSd 는 BPL (http://devel.oops.org/BPL) 입니다.
BPL은 BSD라이센스와
BPL은 BSD라이센스와 호환인가요? ㅋ
밥을 사드리고 제가 고쳐쓰면 제 맘대로가 되는거죠? ㅎㅎ
온갖 참된 삶은 만남이다 --Martin Buber
네 그렇죠.
네 그렇죠. 마음대로가 되는 겁니다.
BSD 호환이라기는 좀 그렇고요. 밥만 사주면.. BSD보다 더한게 되는 거죠. 맘대로..
이게 약간 문제 소지가 있는데.. 밥사주고 그 소스를 그대로 자기 명의로 재배포 하는 경우에 대하여 좀 문제 소지가 있을 수 있는데.. 그거 조차도 맘대로 하라고.. ^^;
버그 리포트 (?)
회사 cvs를 제컴에서 보려고 설치 했는데...
$CVSROOT 디렉토리에 CVSROOT 이라는 폴더가 있으면 CVSROOT 이전 디렉토리만 보여주고 마네요...
의도 된것인지 몰라도...
만드시느라 애 쓰셨습니다...
아르헨티나에 있어서 밥도 한끼 못 사드립니다...
언제 한국 나갈지 몰라도 들르게 되면 연락할께요.... ;)
--------
From Buenos Aires, Argentina
No sere feliz pero tengo computadora.... jaja
닥치고 Ubuntu!!!!!
To Serve My Lord Jesus
blog: http://sehoonpark.com.ar (블로그 주소 바꼈습니다)
--------
From Buenos Aires, Argentina
No sere feliz pero tengo computadora.... jaja
닥치고 Ubuntu!!!!!
To Serve My Lord Jesus
blog: http://sehoonpark.com.ar
http://me2day.net/sheep
잇힝.. 무슨말씀
잇힝.. 무슨말씀 하시는지 모르겠습니다. T.T
혹시.. $CVSROOT 가 /home/cvs/ 이고, /home/cvs/work 라는 프로젝트가 있고, /home/cvs/work/CVSROOT 가 있을 경우인가요? 흠.. 이런 경우라면 문제가 될 수 있겠군요. 임시땜빵으로 cvsd.ini 에서 cvsroot_hide 값을 off 시키면 해결은 되는데.. 궁극적으로는 수정이 되어야 할 것 같기는 하군요. 현재는 CVSROOT 라는 문자열로 체크를 할 테니까....
http://cvs.oops.org/?cvsroot=
http://cvs.oops.org/?cvsroot=OOPS-Project&module=cvsd%2Fclass&file=Skin.php,v&content-type=diff&r1=1.29&r2=1.30 에 수정 사항 반영해 놓았습니다.
댓글 달기