trac-post-commit-hoot script를 사용하면 

Trac+SVN 연동시 SVN에서 commit 할때 Trac의 Ticket에 대한 상태 변경할수 있다.

* Subversion 저장소 : /home/svn/project
* Trac 경로 : /home/trac/project

/home/svn/project/hooks 경로에 가보면 tmpl파일들이 몇개 존재하는데,

여기서 post-commit.tmpl 파일을 post-commit 로 변경한후 실행권한을 추가한후

아래와 같이 편집한다.

#!/bin/sh
REPOS="$1"
REV="$2"
LOG=`svnlook log -r $REV $REPOS`
AUTHOR=`svnlook author -r $REV $REPOS`
TRAC_ENV='/home/trac/project'

/usr/bin/python /home/trac/project/hooks/trac-post-commit-hook \
  -p "$TRAC_ENV"  \
  -r "$REV"       \
  -u "$AUTHOR"    \
  -m "$LOG"

위에 보면 trac-post-commit-hook 이라는 파일을 참조하게 되는데, 이파일은

아래 URL서 다운받을수 있다.


다운받은파일을 /home/trac/project/hooks 의 경로에 복사하게되면 설정 끝!.

이후 SVN에 commit시 사용할 command는 trac-post-commit-hook 파일에 자세히 

comment 되어 있으므로 참조바람.
$ sudo apt-get install subversion
$ sudo mkdir /home/svn
$ sudo svnadmin create 프로젝트명
$ cd 프로젝트명
$ sudo vi conf/svnserve.conf ( 파일을 열어서 아래 내용의 주석을 제거 한다 )
  auth-access = write
  password-db = passwd
$ sudo vi conf/passwd (위에서 설정한 password db를 수정한다 )
  [users]
  ID = PASSWORD
  ID = PASSWORD
  ...
$ sudo svnserve -d -r /home/svn/프로젝트명

$ svn mkdir svn://localhost/trunk
$ svn mkdir svn://localhost/branches
$ svn mkdir svn://localhost/tags


chmod -R g+w /home/svn/...

===== 여기까지 서버 설정 =====

$ svn co svn://xxx.xxx.xxx.xxx/trunk sample ( checkout )
$ vi ~/.bash_profile
  export SVN_EDITOR=/usr/bin/vim    (이전에 vim이 설치되어 있어야함)


LOAD
 - svnadmin create /svn/path
 - svnadmin load test < test.dump

load시 아래와 같은 오류가 발생된다면.
svnadmin: File not found: transaction '148-1', path 'xxx/xxx'
다른 repository로 부터 import되어 상위 경로를 찾지 못하여 발생되는것임.

dump파일을 열어서 찾지못하는 Directory를 추가시켜준다.

Node-path: Project
Node-kind: dir
Node-action: add

 
Svn 설치 하기 Linux 2008.12.07 13:02

 Subversion 설치

1. Subversion 설치
 -  sudo apt-get install subversion libapache2-svn

2. Subversion 저장소 생성
 - svnadmin create /svn/path (svn을 저장할 저장소 경로)

3. Subversion 실행
 - svnserver -d -r /svnpath   : svn 데몬 실행

4. 백업한 파일 load 하기
 - svnadmin create /svn/path
 - svnadmin load test > test.dump