svn 설치 디렉터리 하위에 hook 폴더가 있습니다. 그 안에 UNIX/LINUX의 경우에는 .sh 파일로, 윈도우일 경우에는 .bat 파일로 스크립트를 만들어 주면 됩니다. 다음은 pre-commit.bat 라고 만들어서 넣어놓은 스크립트 파일입니다. commit 할때 주석을 달지 않고 무의식적으로 commit 하는 걸 막아주는 스크립트 입니다.
아래 스크립트는 findstr 로 commit 때의 코멘트를 비교해서 아무것도 없으면 GOTO NOTOK 로 JUMP 하게 만들어 놓은 예제입니다. hook script의 exit 코드가 1 이면 commit 이 실패하게 됩니다. 0 이면 정상 commit 이 일어나고요.
@doortts (doortts) 님이 작성한 게시글입니다. ---
윈도우에서 쉘 스크립트를 사용하기 위해서 cygwin 을 사용하거나 powershell 등을 사용하는 경우가 종종 있습니다. 특히 svn hook script 등을 사용하고자 할 때 더욱 그렇죠.
이럴때 위와 같은 유틸리티를 설치하지 않고도 간단 유용하게 쓸 수 있는 윈도우 커맨드가 findstr 이라는 커맨드 입니다. grep 비슷하게 사용할 수 있습니다.
상세참조 : http://technet.microsoft.com/en-us/library/bb490907.aspx
svn 설치 디렉터리 하위에 hook 폴더가 있습니다. 그 안에 UNIX/LINUX의 경우에는 .sh 파일로, 윈도우일 경우에는 .bat 파일로 스크립트를 만들어 주면 됩니다. 다음은 pre-commit.bat 라고 만들어서 넣어놓은 스크립트 파일입니다. commit 할때 주석을 달지 않고 무의식적으로 commit 하는 걸 막아주는 스크립트 입니다.
아래 스크립트는 findstr 로 commit 때의 코멘트를 비교해서 아무것도 없으면 GOTO NOTOK 로 JUMP 하게 만들어 놓은 예제입니다. hook script의 exit 코드가 1 이면 commit 이 실패하게 됩니다. 0 이면 정상 commit 이 일어나고요.
pre-commit.bat
echo %1 %2 >> c:\result.txt svnlook log %1 -t %2 | findstr /I . >> c:\result.txt || GOTO NOTOK exit 0
:NOTOK echo " " >&2 echo "Commit Comments is required!!!" >&2 exit 1
단 이때 svnlook 이라는 실행파일은 path 내에 존재해야 합니다. 아니경우 full path 를 적어주시면 되고요. 예) c:\svn\svnlook .......
올 봄에 프로젝트때에 작성했던 스크립트인데, 미리 정리 안해놓았었더니 상세 내용은 많이 까먹었네요. :)
참조 : http://doortts.textcube.com/20
--- attachments --- XIOCdwnSoV[1].png