반응형
* 출처:
SVN 커밋 메시지에 특정 명령어를 넣어주면 해당되는 TRAC의 티켓에 댓글로 등록되도록 할 수 있다. 역시 SVN hook 스크립트를 사용한다.
커밋 메시지에 사용할 수 있는 명령어는 티켓을 닫을 수 있는 close, 커밋 메시지를 티켓에 등록하는 refs 등이 있다. 자세한건 스크립트에 있는 주석을 참고하고, 보통 커밋 메시지를 티켓에 등록하는 re, refs, references, see (모두 동일한 기능)를 많이 사용한다. 아래는 사용예이다.
# svn commit -m "커밋 메시지입니다. (see #140)"
우선 SVN 서버에서 이 기능을 적용하려는 레포지토리의 hooks 디렉토리에 post-commit 파일을 아래와 같이 만들어준다.
#!/bin/sh
# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit. Subversion runs
# this hook by invoking a program (script, executable, binary,
# etc.) named 'post-commit' (for which
# this file is a template) with the following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] REV (the number of the revision just committed)
#
REPOS="$1"
REV="$2"
TRAC_ENV="/data/trac"
SVNLOOK="/usr/bin/svnlook"
AWK="/usr/bin/awk"
PROJECT_NAME=`$SVNLOOK changed -r $REV $REPOS | $AWK -F" " '{print $2}' | head -1 | $AWK -F"/" '{print $1}'`
# 해당 프로젝트의 TRAC이 존재하는 경우 티켓에 커밋 메시지를 코멘트로 등록
if test -d "$TRAC_ENV/$PROJECT_NAME" ; then
$REPOS/hooks/trac-post-commit-hook.py -p "$TRAC_ENV/$PROJECT_NAME" -r "$REV"
fi
여기서 TRAC_ENV 변수값을 본인이 사용 중인 TRAC의 경로로 바꿔주어야 한다. 그리고 첨부 파일로 저장된 trac-post-commit-hook.py 파일을 같은 경로에 만들어 준다.
마지막으로 두 파일의 실행권한을 켜준다.
그리고 주의할 점이 SVN 커밋을 하는 사용자가 TRAC 경로에 쓰기 권한이 있어야 한다. 따라서 커밋 권한을 줄 사용자들을 users라는 그룹에 등록하고, TRAC 경로에 있는 모든 파일들에 users 그룹이 쓰기 권한을 가지도록 만들어 준다.
마지막으로 두 파일의 실행권한을 켜준다.
# chmod 755 post-commit trac-post-commit-hook.py
그리고 주의할 점이 SVN 커밋을 하는 사용자가 TRAC 경로에 쓰기 권한이 있어야 한다. 따라서 커밋 권한을 줄 사용자들을 users라는 그룹에 등록하고, TRAC 경로에 있는 모든 파일들에 users 그룹이 쓰기 권한을 가지도록 만들어 준다.
# sudo chgrp -R users /your-trac-dir
# sudo chmod -R g+w /your-trac-dir
# sudo chmod -R g+w /your-trac-dir
반응형
'【🧰 SW Info & Tips】 > SVN' 카테고리의 다른 글
SVN 커밋 로그를 바꾸는 방법 (0) | 2012.02.04 |
---|---|
SVN 커밋 메시지가 없는 경우 커밋을 거부하는 방법 (0) | 2012.02.04 |
SVN 커밋 로그를 자동으로 ChangeLog 파일에 기록 (0) | 2012.02.04 |