Svn mantis 연동

MintheWiki

Jump to: navigation, 찾기

클라이언트 설정(필수)

Subversion(SVN)과 Mantis의 연동
연동하려는 SVN 저장소에 속성 설정합니다.

bugtraq:label = issue
bugtraq:url = http://localhost:8008/view.php?id=%BUGID% bugtraq:message = issue %BUGID%
bugtraq:warnifnoissue = true

서버설정(필요시만 - 테스트 프로젝트는 이미 세팅되어 있습니다)

2. SVN 저장소의 hooks디렉토리에 다음에 나오는 배치 명령이 들어있는 post commit hook 파일 생성
(C:\Repository\hooks\post-commit.bat). SVN이 commit되는 동안에 Mantis에 이슈노트로 추가될 내용들을 넣습니다. REM Post-commit hook for MantisBT integration SET REPOS=%1 SET REV=%2 SET DETAILS_FILE=C:\Repository\GNIS4M\svnfile_%REV% SET LOG_FILE=C:\Repository\GNIS4M\svnfile_%REV%_Log 

echo ****** Source code change ******>>%DETAILS_FILE% svnlook info -r %REV% %REPOS%>>%DETAILS_FILE% echo SVN Revision:%REV%>>%DETAILS_FILE% svnlook diff -r %REV% %REPOS%>>%DETAILS_FILE% 

C:\APM_Setup\Server\PHP4\php.exe C:\APM_Setup\htdocs\mantis\core\checkin.php <%DETAILS_FILE% >%LOG_FILE% DEL %DETAILS_FILE% DEL %LOG_FILE% 

3. 다음 내용을 Mantis config_inc.php에 추가합니다. 

#Integration to SVN

$g_source_control_notes_view_status = VS_PRIVATE; $g_source_control_account = 'Administrator'; $g_source_control_set_status_to = OFF; $g_source_control_regexp = "/\bissue [#]{0,1}(\d+)\b/i"; 

추가로 연동할 SVN저장소에는 1,2만 반복하면 됩니다. 

해보니까 연동은 잘되는데 한글이 깨지는 문제가 생깁니다. 

Windows의 Command Prompt는 기본적으로 시스템의 locale을 따르는데.. 

그게 euc-kr입니다... 

문제는 연동배치파일에서 svnlook을 쓰는데 이 프로그램은 Command Prompt의 Locale에 맞춰서 문자열을 출력한다는거.. 

우리의 Mantis는 UTF-8을 써서 한글을 표현하기 때문에...euc-kr로 된 SVN 정보들은 다 깨집니다. (물론 euc-kr로 할수도 있지만...그러면 Mantis가 자꾸 워닝을 뿌리기때문에...) 

해결책으로 Mantis의 Core디렉토리에 있는 checkin.php를 직접 수정합니다.. 

42번째 줄의... 

while ( ( $t_line = fgets( STDIN, 1024 ) ) ) { 

...를 

while ( ( $t_line_euc = fgets( STDIN, 1024 ) ) ) { 

        $t_line = ( iconv("EUC-KR","UTF-8",$t_line_euc)?iconv("EUC-KR","UTF-8",$t_line_euc):$t_line_euc );

...로 바꾸니까 해결되는군요.. 

윈도우2003서버에서 Mantis 1.0.6과 svn 1.4.0으로 작업했습니다. 

apache error.log에 iconv 오류 발생시 해당 버전 iconv.dll system32로 php_iconv.dll 정위치