반응형
* 출처:
원래 SVN 커밋 로그는 한번 기록되면 바꿀수가 없다. 하지만 아래와 같은 방법을 사용해서 변경이 가능하다.
우선 SVN 서버에서 로그 변경을 허용하려는 레포지토리의 hooks 디렉토리로 이동해서 pre-revprop-change라는 파일을 만들어준다. 기본적으로 이 파일은 존재하지 않고, pre-revprop-change.tmpl이라는 템플릿 파일이 있는데, 이것을 복사해서 사용하면 된다. 만약 템플릿 파일도 없다면 아래와 같이 만들어주면 된다.
그리고 이 파일에 실행권한을 준다.
이제 아래와 같이 SVN 클라이언트에서 커밋 로그를 변경 할 수 있다.
위에서 N은 커밋 로그를 변경할 리비전 번호, URL은 SVN 레포지토리의 URL이다. 만약 URL이 생략되면 현재 디렉토리에 존재하는 워킹카피를 찾아서 사용한다.
-PS-
그런데 이렇게하면 SVN log를 사용해서 보는 커밋 로그는 바뀌는데, TRAC의 timeline에서 보이는 로그는 바뀌지 않는다. 이것도 바꾸려면 아래와 같이 해야 한다.
우선 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
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
반응형
'【🧰 SW Info & Tips】 > SVN' 카테고리의 다른 글
SVN 커밋 메시지가 없는 경우 커밋을 거부하는 방법 (0) | 2012.02.04 |
---|---|
SVN 커밋 메시지가 자동으로 TRAC의 티켓에 등록되도록 만드는 방법 (0) | 2012.02.04 |
SVN 커밋 로그를 자동으로 ChangeLog 파일에 기록 (0) | 2012.02.04 |