1. 연동하려는 SVN 저장소에 속성 설정합니다.
1 2 3 4 |
bugtraq:label = issue bugtraq:url = http://localhost/mantis/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에 이슈노트로 추가될 내용들을 넣습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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에 추가합니다.
1 2 3 4 5 |
#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번째 줄 근처)
1 2 3 4 5 6 7 |
... 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으로 작업했습니다.