본문 바로가기
【🧰 SW Info & Tips】/SVN

SVN 커밋 로그를 바꾸는 방법

반응형

* 출처:

http://superkkt.com/396

원래 SVN 커밋 로그는 한번 기록되면 바꿀수가 없다. 하지만 아래와 같은 방법을 사용해서 변경이 가능하다.

우선 SVN 서버에서 로그 변경을 허용하려는 레포지토리의 hooks 디렉토리로 이동해서 pre-revprop-change라는 파일을 만들어준다. 기본적으로 이 파일은 존재하지 않고, pre-revprop-change.tmpl이라는 템플릿 파일이 있는데, 이것을 복사해서 사용하면 된다. 만약 템플릿 파일도 없다면 아래와 같이 만들어주면 된다.

#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

그리고 이 파일에 실행권한을 준다.

# chmod 755 pre-revprop-change

이제 아래와 같이 SVN 클라이언트에서 커밋 로그를 변경 할 수 있다.

# svn propset -r N --revprop svn:log "변경할 메시지" URL

위에서 N은 커밋 로그를 변경할 리비전 번호, URL은 SVN 레포지토리의 URL이다. 만약 URL이 생략되면 현재 디렉토리에 존재하는 워킹카피를 찾아서 사용한다.

-PS-
그런데 이렇게하면 SVN log를 사용해서 보는 커밋 로그는 바뀌는데, TRAC의 timeline에서 보이는 로그는 바뀌지 않는다. 이것도 바꾸려면 아래와 같이 해야 한다.

# trac-admin <yourprojenv> resync
반응형