이번에는 별도의 linux 가상환경 설정하는 게 귀찮아서 전부 windows local에서만 작업하려고 했더니, 아니다다를까 자잘한 귀찮음들이 발생한다. -_-;;
trac 홈페이지에서는 git plugin으로 receive-hook을 제공하고 있는데, 이건 remote에서 push 할 때 불리는 hook이다.
그렇다고 svn에서 사용하던 commit-hook을 가져다 써봤더니, git에서는 post-commit으로 아무런 매개변수가 나오지 않기 때문에 쓰는게 불가.
local에서 작업하고, windows git이 설치되어 있으면, 해당 git project에서 post-commit에 쉘 스크립트로 간단히 trac-admin 호출해주면 됨.
REPO_NAME="trac에서 설정한 repository 이름"
TRAC_ENV="해당 trac project 경로. windows git이라면 mingsw32에서 사용하는 /c/directory/path 식으로 써줌된다"
COMMIT_ID=$(git log -1 HEAD | awk '/commit/{print $2}')
trac-admin $TRAC_ENV changeset added $REPO_NAME $COMMIT_ID
trac 1.0에서 확인.
당연하지만 amend나 reset등은 안해봄. 안되겠지 ( -_-)