이슈관리 도구인 Trac은 자체적으로 svn과 연동되어 동작할 수 있다. Trac에 내장된 svn repository 탐색기 기능, 최근의 repository 변경 내역, issue와 revision 의 연동을 할 수 있다. ( issue-revision을 연동하기 위해서는 프로젝트 레벨에서 svn에 bugtraq:* property 를 설정하고, post-commit hooking script 를 작성하는 등 몇가지 골치아플 수도 있는 작업들을 더 해 줘야 한다.)
trac으로 모조리 관리하면 문제 없지만, 이번의 경우 trac은 trac, svn은 visual svn server를 통해 별도로 생성했기 때문에 둘이 연동을 시켜줘야 하는데, 문제는 계정 규칙이 서로 달라 trac 계정과 svn 계정이 서로 일치하지 않는다. trac 계정은 사용자 구분을 쉽게 하기 위해 각 파트명을 머릿말로 추가하였고, svn 계정은 그냥 사용자 이름으로 정의하였기 때문이다. ( 내 경우 [QMO]ann_sewon 이 trac 계정이고, svn 계정은 ann_sewon 이다.)
이 경우 쉬운 해결책은 svn 의 anonymous read 권한을 주는 것이다. 어짜피 아무나 읽을 수 있기 때문에 보안과 관계가 없지. 그러나 심심풀이 땅콩 프로젝트나 오픈소스 프로젝트가 아닌 이상, anonymous read 권한을 주는 것은 말도 안된다. 가장 좋은 해결책은 trac-> svn 계정 간 mapping 을 시키는 것이다. 우리 프로젝트 경우는 [QMO] 같은 머릿말을 떼어 버리면 svn 계정과 동일하게 되기 때문에 그렇게 하면 된다. 좀 덜 우아한 방법은 trac 접속 용 계정을 마련하고, 이 계정에 read 권한을 주는 것이다.
난 python을 하나도 모르기 때문에 가장 우아한 방법은 포기하고, 좀 덜 우아한 "trac read권한 용 계정 발급" 방법을 택하였다. 수정해야 할 파일은 trac/versioncontrol/svn_authz.py 이다. 일반적으로 위치는 "Python 설치 위치\Lib\site-packages\trac\versioncontrol\svn_authz.py" 이다. 기준 버전이 0.10 이기 때문에 이후 버전에서는 파일이 바뀌었을 지도 모르겠다.
수정할 내용은 간단하다. 68 line, __init__ 함수의 self.auth_name = auth_name 을 self.auth_name = '지정된svn계정명' 으로 바꾸기만 하면 된다. 이렇게 변경하면 anonymous 가 아닌 지정된 svn 계정을 통해 svn repository 에 접근하게 된다.
물론 이에 앞서 trac 설정 상에서 로그인 한 사용자만 svn repository를 볼 수 있도록 접근 권한을 조정하는 작업이 수행되어야 한다. 그렇지 않은 경우 anonymous read 권한을 준 것이나 매한가지 이기 때문이다.
trac으로 모조리 관리하면 문제 없지만, 이번의 경우 trac은 trac, svn은 visual svn server를 통해 별도로 생성했기 때문에 둘이 연동을 시켜줘야 하는데, 문제는 계정 규칙이 서로 달라 trac 계정과 svn 계정이 서로 일치하지 않는다. trac 계정은 사용자 구분을 쉽게 하기 위해 각 파트명을 머릿말로 추가하였고, svn 계정은 그냥 사용자 이름으로 정의하였기 때문이다. ( 내 경우 [QMO]ann_sewon 이 trac 계정이고, svn 계정은 ann_sewon 이다.)
이 경우 쉬운 해결책은 svn 의 anonymous read 권한을 주는 것이다. 어짜피 아무나 읽을 수 있기 때문에 보안과 관계가 없지. 그러나 심심풀이 땅콩 프로젝트나 오픈소스 프로젝트가 아닌 이상, anonymous read 권한을 주는 것은 말도 안된다. 가장 좋은 해결책은 trac-> svn 계정 간 mapping 을 시키는 것이다. 우리 프로젝트 경우는 [QMO] 같은 머릿말을 떼어 버리면 svn 계정과 동일하게 되기 때문에 그렇게 하면 된다. 좀 덜 우아한 방법은 trac 접속 용 계정을 마련하고, 이 계정에 read 권한을 주는 것이다.
난 python을 하나도 모르기 때문에 가장 우아한 방법은 포기하고, 좀 덜 우아한 "trac read권한 용 계정 발급" 방법을 택하였다. 수정해야 할 파일은 trac/versioncontrol/svn_authz.py 이다. 일반적으로 위치는 "Python 설치 위치\Lib\site-packages\trac\versioncontrol\svn_authz.py" 이다. 기준 버전이 0.10 이기 때문에 이후 버전에서는 파일이 바뀌었을 지도 모르겠다.
수정할 내용은 간단하다. 68 line, __init__ 함수의 self.auth_name = auth_name 을 self.auth_name = '지정된svn계정명' 으로 바꾸기만 하면 된다. 이렇게 변경하면 anonymous 가 아닌 지정된 svn 계정을 통해 svn repository 에 접근하게 된다.
물론 이에 앞서 trac 설정 상에서 로그인 한 사용자만 svn repository를 볼 수 있도록 접근 권한을 조정하는 작업이 수행되어야 한다. 그렇지 않은 경우 anonymous read 권한을 준 것이나 매한가지 이기 때문이다.




덧글