mantis 와 cvs 연동 방법?

quest4i의 이미지

안녕하세요.

cvs 에서 버그 추적을 가능하기 위해서 알아보고 있는데
cvszilla 도 제대로 설치가 안되고
mantis 와의 연동도 되지를 안는 군요...

갑갑합니다. 제가 뜯어 고칠 수도 없고...

혹시 cvs 에서 버그 관련 툴을 사용하시는 분들있으면 부탁드립니다.

irondog의 이미지

소스 관리툴과 버그 트래킹(이슈 트래킹) 툴이 통합된 환경을 원하시는 것 같은데 CVS와 mantis를 통합해서 쓴다는 이야기는 못 들어 본 것 같습니다.

phthon으로 만들어 졌다는 trac정도가 이슈 트래킹 툴과 위키를 통합 했다는 정도 밖에는...

헌데 소스 관리툴하고 이슈 트래킹하고는 별개 아닌가요? 제 생각에는 이슈하고 소스는 따로 관리하는게 정상인 것 같다고 생각 되는데요..

통합도 보통 어려운일이 아닐거라고 추측이 됩니다만... 그냥 이슈가 소스와 1:1대응 하는 것도 아니고 이슈 하나가 한명의 개발자와 1:1 대응 한다는 보장도 없고... 그냥 이슈를 해결한 경우 해결된 소스 릴리즈 정도만 이슈 close할 때 남겨두면 되지 않을까 싶네요.

quest4i의 이미지

댓글 감사합니다.

말씀대로 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를 대체하기 위해서 나왔으니 당연한거겠지요.

mint의 이미지

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로 되어있지 않던가요? ;)

quest4i의 이미지

답변 감사합니다.
그런데 만들어야 하는 계정이 맨티스에서의 사용자 계정이었네요.

님 덕분에 일단 해결은 했습니다.

그래서 이뉴 노트에 커밋한 파일이 나오긴 하는데 cvsweb 과 연결이 안됩니다.
viewvc1.0.3 버전을 사용하는데 혹시나 해서 cvsweb 으로도 해봤지만 여전히 안되는군요.
파일에 링크가 생겨야 할 텐데 그냥 로그 메시지와 수정한 파일이름만 기록이 됩니다.

cvsweb 과 작동이 잘 되는지요?

mint의 이미지

오랫만에 다시 댓글을 달았습니다.

quest4i wrote:

그래서 이뉴 노트에 커밋한 파일이 나오긴 하는데 cvsweb 과 연결이 안됩니다.
viewvc1.0.3 버전을 사용하는데 혹시나 해서 cvsweb 으로도 해봤지만 여전히 안되는군요.
파일에 링크가 생겨야 할 텐데 그냥 로그 메시지와 수정한 파일이름만 기록이 됩니다.

원래 CVS 커밋 로그 메시지만 기록됩니다. 말씀드렸다시피

Quote:

2) CVS에서 commit시 log message의 'issue [#]{0,1}(\d+)' 형식을 인지해서 mantis의 지정된 이슈번호에 commit 로그를 남기는 부분이 있는 것으로 알고 있습니다.

CVS 커밋 시 로그 메시지가 mantisbt의 특정 이슈의 노트로 들어가게 해주는 것일 뿐입니다.

cvsweb 혹은 viewcvs로의 링크 부분은

Quote:

1) mantis에서 cvs:http://location/of/source:rev 의 형식으로 썼을 때 cvs로의 링크(아마도 viewcvs 혹은 cvsweb이겠죠?)를 만들어주는 부분과,

말씀드렸듯이
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

힘드네요...

mint의 이미지

"commitinfo line contains no format strings" 에러에 대해 구글링 해보니
http://cvs.web.cern.ch/cvs/howto.php#issues-deprecation
가 나오는 군요. 그냥 워닝 메시지인가 본데요.

그런데 제가 말씀드린 것은 CVSROOT/commitinfo가 아니라 CVSROOT/loginfo에 넣어주셔야 할 것 같습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.