본문 바로가기

Papyrus/Troubleshooting

서브버전에서 로그 메세지 수정하기

서브버전(SVN)을 사용할 때, 커밋할 때의 로그 메세지를 수정하고 싶을 때가 있다. 그러나, 서브버전에서 리비전 속성 정보를 수정하는 일은 어떠한 기록도 남지 않기 때문에, 서브버전은 기본적으로 리비전 속성 정보를 수정하는 것을 허용하지 않는다.

리비전 속성 정보를 수정하려면 서브버전이 제공하는 훅(hook)을 사용해야 한다. 생성한 저장소의 디렉토리를 살펴보면 hooks란 디렉토리가 있을텐데, 이 디렉토리에 있는 스크립트들은 서브버전의 정책을 변경할 수 있는 훅 스크립트들의 집합이다. 이 스크립트는 유닉스 스크립트라서, 윈도우에서는 배치 파일로 바꿔줘야 한다. 다음을 참고하여 작성하라. Copy & Paste면 충분하다 : http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-repository-hooks.html

작성된 스크립트를 서브버전 서버쪽에서 프로젝트 저장소의 hooks 폴더에 pre-revprop-change.bat 이름으로 저장하고, 서브버전 클라이언트에서 다음 명령을 실행한다.


svn propedit -r N --revprop svn:log "New Log Message" URL


N은 고치고자 하는 로그의 리비전이다. 작업본을 체크아웃한 위치라면 URL을 생략할 수 있으며, SVN_EDITOR 환경 변수를 지정했다면 지정해 둔 편집기를 사용하여 새로운 로그 메세지를 입력할 수 있다.


앞서 말했지만, 리비전 속성 정보를 수정하는 것은 리비전 속성 정보 자체를 수정하는 것이기 때문에, 어떤 일도 되돌릴 수 없다. 서브버전의 사용 목적을 생각해본다면, 이와 같은 행위는 좋지 않다. 잘 만들어진 서브버전 클라이언트를 사용하여 초기에 실수를 최대한 줄이고, 평상시에는 리비전 속성 정보를 수정할 수 없도록 하는 것이 좋다.





Reference
http://subversion.apache.org/faq.html#change-log-msg