trac

You are currently browsing articles tagged trac.

Subversion 의 로그 메시지를 수정하는 기능은 기본적으로 막혀있습니다.

왜냐하면 로그 메시지를 바꾸는 일은 리비전이 남지 않기 때문입니다. 즉, 데이터를 날릴 수 있는 가능성이 존재하므로 이는 롤백조차 리비전으로 남기는 섭버전의 타임머신 철학상 그다지 추천할만한 기능이 아닙니다.

그래서 섭버전은 로그 메시지 수정, 즉 리비전 속성 변경 (revision properties change) 의 경우에는 무조건 pre-revprop-change 훅 스크립트가 있어야 실행됩니다. 만약 스크립트가 없다면 로그 메시지를 수정할려고 할 때 아래와 같은 에러 메시지를 볼 수 있습니다.

섭버전 배포판에 기본적으로 pre-revprop-change 예제가 포함되어 있지만 이것은 리눅스 계열의 쉘 스크립트이기 때문에 윈도우 기반에서는 따로 작성해야 합니다.

정말 새로 작성해야 될까 하는 의문을 품고 섭버전 유저들의 제 2의 바이블인 TortoiseSVN 의 도움말을 뒤져보다 보면 “4.3. Hook Scripts” 섹션에서 아래와 같은 윈도우 용 pre-revprop-change.bat 예제를 찾을 수 있습니다.

rem Only allow log messages to be changed.
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1

pre-revprop-change.bat

이렇게 pre-revprop-change.bat 를 만들어주면 로그 수정이 가능해집니다.

trac 을 같이 쓰고 있을 때

trac 을 같이 사용하고 있다면 로그 수정을 해도 트랙의 Timeline 이나 Browse Source 에서 표시되는 섭버전 로그들은 수정되지 않는다는 것을 발견하게 될 겁니다. 따라서 로그 수정시 trac 과 자동으로 싱크를 맞춰주는 기능을 구현해줘야 합니다.

이 기능은 수정된 로그를 반영하는 것이므로 pre-revprop-change 가 아닌 post-revprop-change 에 구현해야 합니다. 안그러면 수정된 로그 메시지가 반영되지 않습니다. trac 과 subversion 다시 싱크 맞추기를 참고해서 아래와 같이 post-revprop-change 스크립트를 만들어주면 됩니다.

rem Only resync when log messages are changed.
if "%4" == "svn:log" C:\Python25\scripts\trac-admin.exe (trac_proj_dir) resync

post-revprop-change.bat

파이썬 경로와 (trac_proj_dir) 은 자신의 환경에 맞게 수정해주도록 합니다. :)

Tags: , ,

예전에 “Firefox 로 SharePoint 에 접속하기” 란 포스팅을 한 적이 있었는데 오늘 다른 문제도 같은 원인이었다는 것을 발견하고 글을 쓴다.

보통 Subversion 을 SCM 으로 사용한다면 보안을 위해 암호화 된 프로토콜로 접속하도록 한다. 소스 코드가 plain text 로 네트워크를 왔다 갔다하는건 개발자라면 누구나 피하고 싶은 상황이므로 (물론 오픈 소스라면 해당되지 않겠지만) 이렇게 하는데 섭버전의 경우 지원하는 보안 프로토콜이 SSH 나 Apache 를 통한 HTTPS (SSL) 이다. svn+ssh 는 리눅스 기반 운영체제라면 OS 의 사용자 계정과 연동하여 사용할 수 있으므로 가장 편하지만 윈도우 기반의 OS 라면 그렇지 않으므로 보통 아파치를 통해서 HTTPS 로 접속하도록 하고 유저 인증은 아파치 모듈인 mod_auth_sspi 를 사용하여 윈도우 도메인 계정 인증 (NTLM) 으로 한다.

그래서 이번에 trac 을 설치하면서도 동일하게 HTTPS 와 mod_auth_sspi 를 사용하여 암호화하고 윈도우 도메인 계정 인증을 하게 했다. 그런데 Internet Explorer 에서는 다른 쉐어포인트나 기타 윈도우 도메인 인증 페이지에 접속할 때처럼 별도의 로그인 창 없이 인증이 되는데 파이어폭스에서는 접속할 때마다 로그인 창이 뜨는 문제가 있었다. 섭버전을 설치했을 때도 발생했던 문제인데 문제 원인도 찾지 못했고 섭버전에 웹 브라우저로 접속하는 경우도 거의 없었기 때문에 그냥 잊혀져버렸었다. 하지만 트랙의 경우 웹 브라우저로 접속해서 사용해야 하므로 꽤나 빈번하게 창이 뜨는 것 불편함을 느낀 와중에 저번에 포스팅 했던 내용과 결과적으로 같은 원인이라는 것을 파악하고 적용해보았다.

결론적으로 같은 원인이었고 이전 포스팅에서 언급한대로 network.automatic-ntlm-auth.trusted-uris 를 설정해주니 깔끔하게 해결되었다. 참고로 mod_auth_sspi 1.0.4 버전에 버그가 있어서 인터넷 익스플로어 7 에서는

Bad Request.
Missing or invalid form token. Do you have cookies enabled?

라는 에러가 뜨면서 정상적으로 사용이 불가능한 문제가 있었지만 임시방편으로 해결하고 잘 사용하고 있다. (티켓 번호 4560)

나중에 시간이 허락한다면 윈도우 기반의 서버에 아파치, 섭버전, 트랙을 이용하여 통합된 암호화 통신과 인증으로 사용 가능한 개발 시스템 (게다가 무료!) 에 대해서 따로 포스팅을 해보고 싶다.

Tags: , ,