이번에 VisualSVN으로 서버를 옮기면서, hook 스크립트를 추가해 봤습니다.
현재는 두가지 체크를 하고 있습니다.
이슈 번호는 레드마인을 사용하고 있어서.. #[숫자] 이런 식으로 되어 있습니다.
간단하게 #과 숫자가 붙은게 있는지를 체크 합니다.
VisualSVN에서 프로젝트의 마우스 오른쪽을 클릭후 메뉴에서
를 선택합니다.
위와 같은 메뉴에서 Pre-commit hook를 선택하고 편집을 합니다.
이 화면에서 아래 내용을 붙여 넣습니다.
그리고, 36bit용 windows를 설치 하신 분들은 13번 행에서 (x86)을 빼 주셔야 합니다.
필요 하신 분들은 잘 사용하세요.
참고 사이트 :
현재는 두가지 체크를 하고 있습니다.
- 빈 로그 메시지
- 이슈 번호가 들어 있는지
이슈 번호는 레드마인을 사용하고 있어서.. #[숫자] 이런 식으로 되어 있습니다.
간단하게 #과 숫자가 붙은게 있는지를 체크 합니다.
VisualSVN에서 프로젝트의 마우스 오른쪽을 클릭후 메뉴에서
모든 작업 > Manage Hooks
를 선택합니다.
위와 같은 메뉴에서 Pre-commit hook를 선택하고 편집을 합니다.
이 화면에서 아래 내용을 붙여 넣습니다.
@echo off17, 18번 행이 이슈트래커용입니다.
::
:: 로그 메시지가 없거나 이슈번호가 없으면 commit 중단
::
@echo off
setlocal
set REPOS=%1
set TXN=%2
set SVNLOOK="C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe"
%SVNLOOK% log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto ERROR_TOO_SHORT)
%SVNLOOK% log %REPOS% -t %TXN% | findstr /r /c:"#[0-9]" > nul
if %errorlevel% gtr 0 (goto ERROR_ISSUE) else (goto NORMAL_EXIT)
:ERROR_TOO_SHORT
echo Your commit has been blocked because your log message was too 1>&2
echo short. Please write a log message describing the purpose of your 1>&2
echo changes and then try committing again. Thanks! 1>&2
goto ERROR_EXIT
:ERROR_ISSUE
echo empty issue, please fill issue number 1>&2
echo changes and then try committing again. Thanks! 1>&2
echo example : #000 hello world 1>&2
goto ERROR_EXIT
:ERROR_EXIT
exit /b 1
:NORMAL_EXIT
exit 0
그리고, 36bit용 windows를 설치 하신 분들은 13번 행에서 (x86)을 빼 주셔야 합니다.
필요 하신 분들은 잘 사용하세요.
참고 사이트 :
댓글