본문 바로가기
【🧰 SW Info & Tips】/SVN

SVN 커밋 메시지가 없는 경우 커밋을 거부하는 방법

반응형

* 출처:

http://superkkt.com/397

SVN에서 커밋 메시지가 없는 경우 커밋을 거부하는 방법이다. 이것도 SVN hook 스크립트를 사용해서 구현하는데, 커밋 메시지 외에도 사용자 정보 등을 사용해서 다양한 제한을 가할 수 있다.

우선 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

그리고 파일에 실행권한을 준다.

# chmod 755 pre-commit


반응형