2009-06-17 4 views
3

TortoiseSVN에 대한 초보자 수입니다. 전 Subversion으로 만든 커밋에 대한 로그 메시지를 변경해야합니다. 나는 단지 내 변화를 만들고 나서 모든 것이 이전과 같은 방식으로 돌아가도록하고 싶다. 이것은 커밋 후에 아무 것도 바꿀 수 없다는 것을 의미한다.TortoiseSVN의 pre-revprop-change 후크

이 게시물 (What is a pre-revprop-change hook in SVN, and how do I create it?)에 따르면이 작업을 수행하려면 pre-revprop-change.bat 파일을 만들어야한다는 것을 알고 있습니다.

제 질문은 방금이 박쥐 파일을 추가하고 로그 메시지를 변경 한 다음 박쥐 파일을 제거하면 설정이 이전 상태 (예 : 로그 메시지 uneditable)로 되돌아갑니다. 방망이 파일을 직접 실행 한 다음 다른 스크립트를 사용하여 변경 사항을 취소합니다.

감사합니다.

답변

4

죄송합니다. 원래 답변에서 귀하의 질문에 대한 오해가있었습니다.

로그 메시지 속성 인 svn:log과 같이 개정판에서 svn propedit 명령을 올바르게 사용하려면 기본 동작은 수정본 속성 변경을 거부하는 것이므로 pre-revprop-change 후크가 필요합니다. pre-revprop-change 훅을 추가하는 가장 쉬운 방법은 pre-revprop-change.tmpl 파일 (svn 디렉토리의/repository-name/hooks에서 찾을 수 있음)의 복사본을 만들고, revprop-change를 실행하고 실행 가능하게 만듭니다 (chmod a+x).

propedit 명령을 실행 한 후에는 기본 동작으로 되돌리려면 후크를 제거하거나 항상 0이 아닌 반환 코드로 종료되도록 변경하십시오. nnn은 개정 번호입니다

echo "My new commit message." > newmsg.txt 
svnadmin setlog path/to/repository -r nnn newmsg.txt --bypass-hooks 

:

+0

대단히 감사합니다. –

2

또 다른 옵션은 로그 메시지가 변경 svnadmin을 사용하는 것입니다.

0

this question의 대답을 사용하여 rev-rev-change 후크 코드를 가져옵니다. 파일을 만들어 저장소의 hooks 디렉토리에 저장합니다. 이제 로그 메시지를 변경할 수 있습니다. 더 이상 로그 메시지를 변경하지 않으려면 pre-revprop-change.bat를 삭제하십시오.