반응형
* 출처:
SVN에서 커밋 메시지가 없는 경우 커밋을 거부하는 방법이다. 이것도 SVN hook 스크립트를 사용해서 구현하는데, 커밋 메시지 외에도 사용자 정보 등을 사용해서 다양한 제한을 가할 수 있다.
우선 SVN 서버에서 이 기능을 적용할 레포지토리의 hook 디렉토리에 pre-commit 스크립트 파일을 만든다. 기본적으로 이 파일은 존재하지 않고, pre-commit.tmpl이라는 템플릿 파일이 있으니 이것을 복사해서 사용해도 된다.
그리고 커밋 메시지가 비어있거나, 공백만 있는 경우, 또는 메세지에 티켓번호를 나타내는 "see #티켓번호" 지정자가 없는 경우 커밋을 거부하려면 아래와 같이 pre-commit 파일을 만들어준다. 스크립트 언어는 쉘스크립트 외에도 PHP, Perl, Python 등을 모두 사용할 수 있다. exit code가 0이라면 커밋 성공이고, 1이면 커밋 실패이다.
그리고 파일에 실행권한을 준다.
우선 SVN 서버에서 이 기능을 적용할 레포지토리의 hook 디렉토리에 pre-commit 스크립트 파일을 만든다. 기본적으로 이 파일은 존재하지 않고, pre-commit.tmpl이라는 템플릿 파일이 있으니 이것을 복사해서 사용해도 된다.
그리고 커밋 메시지가 비어있거나, 공백만 있는 경우, 또는 메세지에 티켓번호를 나타내는 "see #티켓번호" 지정자가 없는 경우 커밋을 거부하려면 아래와 같이 pre-commit 파일을 만들어준다. 스크립트 언어는 쉘스크립트 외에도 PHP, Perl, Python 등을 모두 사용할 수 있다. exit code가 0이라면 커밋 성공이고, 1이면 커밋 실패이다.
#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | grep "[^[:space:]]" | grep -i "see #[^[:space:]]" > /dev/null
if [ $? -ne 0 ]; then
echo -n "EMPTY commit log or ticket number(ex: see #1) is NOT ALLOWED" 1>&2
exit 1
fi
# All checks passed, so allow the commit.
exit 0
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | grep "[^[:space:]]" | grep -i "see #[^[:space:]]" > /dev/null
if [ $? -ne 0 ]; then
echo -n "EMPTY commit log or ticket number(ex: see #1) is NOT ALLOWED" 1>&2
exit 1
fi
# All checks passed, so allow the commit.
exit 0
그리고 파일에 실행권한을 준다.
# chmod 755 pre-commit
반응형
'【🧰 SW Info & Tips】 > SVN' 카테고리의 다른 글
SVN 커밋 로그를 바꾸는 방법 (0) | 2012.02.04 |
---|---|
SVN 커밋 메시지가 자동으로 TRAC의 티켓에 등록되도록 만드는 방법 (0) | 2012.02.04 |
SVN 커밋 로그를 자동으로 ChangeLog 파일에 기록 (0) | 2012.02.04 |