소스 관리툴과 버그 트래킹(이슈 트래킹) 툴이 통합된 환경을 원하시는 것 같은데 CVS와 mantis를 통합해서 쓴다는 이야기는 못 들어 본 것 같습니다.
phthon으로 만들어 졌다는 trac정도가 이슈 트래킹 툴과 위키를 통합 했다는 정도 밖에는...
헌데 소스 관리툴하고 이슈 트래킹하고는 별개 아닌가요? 제 생각에는 이슈하고 소스는 따로 관리하는게 정상인 것 같다고 생각 되는데요..
통합도 보통 어려운일이 아닐거라고 추측이 됩니다만... 그냥 이슈가 소스와 1:1대응 하는 것도 아니고 이슈 하나가 한명의 개발자와 1:1 대응 한다는 보장도 없고... 그냥 이슈를 해결한 경우 해결된 소스 릴리즈 정도만 이슈 close할 때 남겨두면 되지 않을까 싶네요.
말씀대로 CVS 는 소스 버전 관리 시스템이죠.
문제는 CVS 의 기능상 한계로 체인지 셋 개념이 지원되지 않다 보니 특정 버그로 인 해 많은 파일을 고쳤을 경우 관리가 쉽지 않다는 거죠. 그 때마다 tag 를 만든다면 가능 할 수도 있을 것 같지만 CVS에서 tag 작업은 비싼 작업이잖아요?
그리고 버그 관리 시스템은 버전 관리와 별도로 사용하는 솔루션인데 이 둘을 통합해서 특정 버그에 고친 파일, 내용 등을 볼 수 있게 하면 훨씬 좋겠지요?
그래서 알아본 바로는....
CVS 는 그냥 하나만 쓰는 경우는 없고 각종 툴과 함께 쓰는데
ViewVC(cvsview 의 새버전, cvsview는 펄로 짜여 있고 ViewVC는 파이썬으로 개발됨 현재 버전은 1.0.3)
를 프론트 엔드 툴로 사용하고 버그 관리를 위한 버그질라와 이 둘을 통합해서 체인지셋 기능을 지원하기 위한
cvszilla 라는 툴을 같이 사용하는 경우와....
버그질라 대신 mantis 를 쓰는 경우가 있는 걸로 보입니다.
일단 ViewVC를 사용하기 위해서는 Apache, MySQL, Python, engraph(소스 하이라이트 기능을 위해서), cvsgraph(태그, 브랜치를 그래프로 그려줌) 를 함께 설치하여 연동해 주면 더 이상 프론트 엔드 툴은 필요 없을 정도로 편합니다.
문제는 cvszilla 랑 mantis 를 CVS와 연동하는 방법인데 도저히 제대로 된 how-to 를 구할 수가 없네요.
어쨌든 회사에서 맡게 되어서 펄을 공부해서 스스로 해야 할 듯 합니다.
말씀드렸듯이
mantisbt의 노트에서 cvs:source:rev 의 형식으로 썼을 때 cvs로의 링크(아마도 viewcvs 혹은 cvsweb이겠죠?)를
만들어주도록 하는 것입니다. ( " mantis에서 cvs:http://location/of/source:rev 의 형식으로 썼을" 때 는 잘못 쓴겁니다. 죄송.)
quest4i님이 원하시는 방식처럼 CVS 커밋시 mantisbt에 자동 링크가 걸리게 하려면
CVS commit --(*)--> mantibst checkin.php -> new note
* 한 부분에 적당한 스크립트를 넣어서 cvs:source:rev 의 로그를 mantisbt checkin.php로 보내거나
아예 cvsweb (혹은 viewcvs) 링크를 넣어서 mantisbt checkin.php 로 보내야 합니다.
아마도 cvsreport, cvs-mailcommit 등 commit로그를 메일로 날려주는 스크립트를 파이프로 넣어주시면 됩니다.
저는 http://kldp.org/node/23095 의 pynoos(최호진)님이 만드신 cvsreport를 저희 연구실 환경에 맞게 바꾸어쓰고 있습니다.
그런데 mantisbt는 anchor tag을 쓸 수 없어서 노트가 지저분해지더군요.
소스관리와 이슈관리를 통합 할 필요가 있을까요?
소스 관리툴과 버그 트래킹(이슈 트래킹) 툴이 통합된 환경을 원하시는 것 같은데 CVS와 mantis를 통합해서 쓴다는 이야기는 못 들어 본 것 같습니다.
phthon으로 만들어 졌다는 trac정도가 이슈 트래킹 툴과 위키를 통합 했다는 정도 밖에는...
헌데 소스 관리툴하고 이슈 트래킹하고는 별개 아닌가요? 제 생각에는 이슈하고 소스는 따로 관리하는게 정상인 것 같다고 생각 되는데요..
통합도 보통 어려운일이 아닐거라고 추측이 됩니다만... 그냥 이슈가 소스와 1:1대응 하는 것도 아니고 이슈 하나가 한명의 개발자와 1:1 대응 한다는 보장도 없고... 그냥 이슈를 해결한 경우 해결된 소스 릴리즈 정도만 이슈 close할 때 남겨두면 되지 않을까 싶네요.
버전 관리 시스템 & 버그 관리 시스템
댓글 감사합니다.
말씀대로 CVS 는 소스 버전 관리 시스템이죠.
문제는 CVS 의 기능상 한계로 체인지 셋 개념이 지원되지 않다 보니 특정 버그로 인 해 많은 파일을 고쳤을 경우 관리가 쉽지 않다는 거죠. 그 때마다 tag 를 만든다면 가능 할 수도 있을 것 같지만 CVS에서 tag 작업은 비싼 작업이잖아요?
그리고 버그 관리 시스템은 버전 관리와 별도로 사용하는 솔루션인데 이 둘을 통합해서 특정 버그에 고친 파일, 내용 등을 볼 수 있게 하면 훨씬 좋겠지요?
그래서 알아본 바로는....
CVS 는 그냥 하나만 쓰는 경우는 없고 각종 툴과 함께 쓰는데
ViewVC(cvsview 의 새버전, cvsview는 펄로 짜여 있고 ViewVC는 파이썬으로 개발됨 현재 버전은 1.0.3)
를 프론트 엔드 툴로 사용하고 버그 관리를 위한 버그질라와 이 둘을 통합해서 체인지셋 기능을 지원하기 위한
cvszilla 라는 툴을 같이 사용하는 경우와....
버그질라 대신 mantis 를 쓰는 경우가 있는 걸로 보입니다.
일단 ViewVC를 사용하기 위해서는 Apache, MySQL, Python, engraph(소스 하이라이트 기능을 위해서), cvsgraph(태그, 브랜치를 그래프로 그려줌) 를 함께 설치하여 연동해 주면 더 이상 프론트 엔드 툴은 필요 없을 정도로 편합니다.
문제는 cvszilla 랑 mantis 를 CVS와 연동하는 방법인데 도저히 제대로 된 how-to 를 구할 수가 없네요.
어쨌든 회사에서 맡게 되어서 펄을 공부해서 스스로 해야 할 듯 합니다.
흑....
요즘은 서브버전 + trac 으로 가는 추세더군요.
서브버전 자체가 CVS를 대체하기 위해서 나왔으니 당연한거겠지요.
mantis와 cvs 연동이라 하시면...
mantis와 cvs 연동이라 하시면...
1) mantis에서 cvs:http://location/of/source:rev 의 형식으로 썼을 때 cvs로의 링크(아마도 viewcvs 혹은 cvsweb이겠죠?)를 만들어주는 부분과,
2) CVS에서 commit시 log message의 'issue [#]{0,1}(\d+)' 형식을 인지해서 mantis의 지정된 이슈번호에 commit 로그를 남기는 부분이 있는 것으로 알고 있습니다..
1)은 config_defaults_inc.php 에 아래 내용을 적절히 고쳐서 넣어주시면 되겠습니다. (아래의 경우는 cvsweb)
$g_cvs_web = 'http://xxx.yyy.zzz/cgi-bin/cvsweb/';
2)는 CVSROOT/loginfo 에 아래 내용(php 바이너리와 mantis 설치 위치)을 적절히 고쳐서 추가해주세요. 대개 /your/binary/php-cli = /usr/bin/php 일 것 같습니다.
ALL /your/binary/php-cli /path/to/mantisbt/core/checkin.php
그리고 /path/to/mantisbt/core/checkin.php 의 첫머리에도 php cli binary가 제대로 되어 있는지 살펴봐주시구요.
그 다음은 mantis에서 CVS commit log용 유저(예를 들면 cvs)를 하나 만드시던가 아니면 기존의 유저를 선택하셔서
config_defaults_inc.php 설정 파일에 아래의 내용을 추가해주시면 되겠습니다.
$g_source_control_notes_view_status = VS_PUBLIC;
$g_source_control_account = 'cvs';
CVS에서 commit할때 mantis issue를 resolved하도록 state를 FIXED로 바꾸고 싶다면 아래 라인을 추가하시면 됩니다.
$g_source_control_set_status_to = ON;
$g_source_control_set_resolution_to = FIXED;
http://manual.mantisbugtracker.com/manual.configuration.misc.php 과
http://manual.mantisbugtracker.com/manual.configuration.source.control.integration.php 를 참조하시면 되겠습니다.
저희도 CVS + mantisbt를 쓰고 있는데 매뉴얼 보다는 그 아래의 다른 사람들의 덧글이 더 유용할 때가 가끔 있습니다.
ps) mantis는 php로 되어있지 않던가요? ;)
cvsweb 설정이 안되는 군요.
답변 감사합니다.
그런데 만들어야 하는 계정이 맨티스에서의 사용자 계정이었네요.
님 덕분에 일단 해결은 했습니다.
그래서 이뉴 노트에 커밋한 파일이 나오긴 하는데 cvsweb 과 연결이 안됩니다.
viewvc1.0.3 버전을 사용하는데 혹시나 해서 cvsweb 으로도 해봤지만 여전히 안되는군요.
파일에 링크가 생겨야 할 텐데 그냥 로그 메시지와 수정한 파일이름만 기록이 됩니다.
cvsweb 과 작동이 잘 되는지요?
오랫만에 다시
오랫만에 다시 댓글을 달았습니다.
원래 CVS 커밋 로그 메시지만 기록됩니다. 말씀드렸다시피
CVS 커밋 시 로그 메시지가 mantisbt의 특정 이슈의 노트로 들어가게 해주는 것일 뿐입니다.
cvsweb 혹은 viewcvs로의 링크 부분은
말씀드렸듯이
mantisbt의 노트에서 cvs:source:rev 의 형식으로 썼을 때 cvs로의 링크(아마도 viewcvs 혹은 cvsweb이겠죠?)를
만들어주도록 하는 것입니다. ( " mantis에서 cvs:http://location/of/source:rev 의 형식으로 썼을" 때 는 잘못 쓴겁니다. 죄송.)
quest4i님이 원하시는 방식처럼 CVS 커밋시 mantisbt에 자동 링크가 걸리게 하려면
CVS commit --(*)--> mantibst checkin.php -> new note
* 한 부분에 적당한 스크립트를 넣어서 cvs:source:rev 의 로그를 mantisbt checkin.php로 보내거나
아예 cvsweb (혹은 viewcvs) 링크를 넣어서 mantisbt checkin.php 로 보내야 합니다.
아마도 cvsreport, cvs-mailcommit 등 commit로그를 메일로 날려주는 스크립트를 파이프로 넣어주시면 됩니다.
저는 http://kldp.org/node/23095 의 pynoos(최호진)님이 만드신 cvsreport를 저희 연구실 환경에 맞게 바꾸어쓰고 있습니다.
그런데 mantisbt는 anchor tag을 쓸 수 없어서 노트가 지저분해지더군요.
님 말씀대로 해도 다음과 같은 에러가 뜹니다.
[smgu@cvstest cvsweb]$ cvs commit -m "issue #3"
cvs commit: Examining .
cvs commit: warning: commitinfo line contains no format strings:
"/usr/bin/php /var/www/html/mantis/core/checkin.php "
Appending defaults (" %r/%p %s"), but please be aware that this usage is
deprecated.
Content-type: text/html
X-Powered-By: PHP/4.3.9
Comment does not reference any issues.
/home/cvsroot/cvsweb/index.shtml,v <-- index.shtml
new revision: 1.23; previous revision: 1.22
힘드네요...
"commitinfo line contains no
"commitinfo line contains no format strings" 에러에 대해 구글링 해보니
http://cvs.web.cern.ch/cvs/howto.php#issues-deprecation
가 나오는 군요. 그냥 워닝 메시지인가 본데요.
그런데 제가 말씀드린 것은 CVSROOT/commitinfo가 아니라 CVSROOT/loginfo에 넣어주셔야 할 것 같습니다.
댓글 달기