SVN 커밋 메시지를 소급하여 변경 하시겠습니까?


85

많은 수의 SVN 커밋 메시지를 다른 구조 (예 : 카테고리 접두사)에 다시 작성하고 싶습니다. 에서:

"foo" now accepts "bar" format for connection string.

내가 원하는

core - database - "foo" now accepts "bar" format for connection string.

전체 저장소를 덤핑하는 것을 포함 하지 않는 쉬운 방법이 svndumpfilter있습니까?

클라이언트 쪽에서는 TortoiseSVN을, 서버 쪽에서는 VisualSVN을 사용하고 있습니다. (VisualSVN은 classic에 대한 래퍼이며 svn명령 줄을 통해서도 대화 할 수 있습니다.)

답변:


98

예, 커밋 메시지를 변경할 수 있습니다. 일반 파일 속성과 유사하게 개정판의 속성으로 구현됩니다.

TortoiseSVN 로그 창에서 커밋을 마우스 오른쪽 버튼으로 클릭하고 "로그 메시지 편집"을 선택할 수 있습니다.


+1 감사합니다. 나머지 부분에 개별적으로 커밋하고 싶은 일부 API 변경 사항과 관련된 작업을 수행했고, 실수로 전체를 커밋하기 전에이를 반영하기 위해 로그 메시지를 작성했습니다. 나머지를 설명하는 로그 메시지와 함께 공백 변경을 커밋하여 "수정"했습니다! 다음에 무엇을해야할지 알게 될 것입니다.
Ed Daniel

1
나는 이것에도 +1을 주었지만 "Repository가 개정 propchanges를 허용하도록 활성화되지 않았습니다. 관리자에게 pre-revprop-change 후크를 생성하도록 요청하십시오"라는 메시지와 함께 작동하지 않았습니다. 관리자가 수행해야 할 작업을 자동으로 알 수 있습니까?
J.Merrill 2011 년

19
당신이 묻는 나에게 당신이 유능한 서브 관리자가 있다면? :)
JesperE 2011 년

J.Merrill @ 당신은 찾아해야 hooks저장소의 위치에 폴더 이름 바꾸기 pre-revprop-change.tmpl에이 pre-revprop-change.bat작업에 대한.
sa_leinad

59

로그 메시지는 소급하여 변경할 수 있으며 FAQ 에서 다룹니다 . VisualSVN의 명령 줄 인터페이스가 어떻게 작동하는지 잘 모르겠지만 바닐라 svn의 경우 명령은 다음과 같습니다.

svn propset -r N --revprop svn:log "new log message" URL

저장소를 덤프하고 다시로드하지 않고 모든 개정에 대해이 작업을 수행하려면이 명령을 스크립트하여 모든 개정 목록에서 작업 할 수 있습니다. 리포지토리의 크기에 따라이 방법을 사용하는 데 시간이 좀 걸리지 만 원칙적으로 할 수없는 이유가 없으며 덤프 및 다시로드가 필요하지 않습니다.

또한 vanilla SVN에는 svnlook저장소 파일과 직접 작동하는 일종의 관리 도구 인 명령 이 있습니다. 이 도구는 URL을 이해하지 못하지만 (저장소에 대한 파일 시스템 수준 액세스 권한이 있어야 함) 훨씬 빠릅니다. 구문은 약간 다르지만 해당 도구를 사용하여 동일한 방식으로 속성을 수정할 수 있습니다.


3
@kazark에게 감사 svn propedit -r N --revprop svn:log합니다. 편집자에서 메시지를 변경할 수 있도록 해야 했습니다.
tutuDajuju

3
메모를 추가하기 만하면 기본적 으로 개정 속성 변경 이 허용되지 않기 때문에 기본적으로 해당 명령이 작동 하지 않습니다. 이를 허용하기 위해 svn 관리자는 "pre-revprop-change" 라는 후크를 생성해야합니다 . 이 정보는 위에서 언급 한 FAQ에 있습니다.
Matthias 2013

Windows에서는 명령을 실행하기 전에 "SVN_EDITOR", "VISUAL"또는 "EDITOR"환경 변수를 설정해야합니다. 예 :set SVN_EDITOR=notepad.exe
Enwired

26

예, 가능하지만 먼저 저장소에서 활성화해야합니다.

저장소의 hooks 디렉토리에는 pre-revprop-change.tmpl이라는 파일이 있습니다. 그것이하는 일에 대한 몇 페이지의 주석이 있고 로그 속성에 대한 변경 만 허용하도록 설정되어 있습니다. 이를 활성화하려면 파일의 이름을 pre-revprop-change로 변경하고 실행 가능하게 만드십시오 (POSIX 호스팅 하위 버전을 가정하고 Windows를 호스트로 사용하는 경우이 메시지가 유용 할 수 있음 ).

저장소에서 허용하면 Tortoise를 사용하여 커밋의 오른쪽 클릭 메뉴에서 커밋에 대한 로그 메시지를 변경하거나 명령 줄을 사용할 수 있습니다.


+1 훌륭한 정보입니다. pre-revprop-change hook 없이는 할 수 없습니다. 템플릿 bash 스크립트를 Windows에 이식해야하지만 문제가되지 않습니다.
Pekka

예제 명령 스크립트에 대한 링크를 추가했습니다. svn.haxx.se/users/archive-2006-03/0107.shtml
Andrew Aylett


2

svn propedit -r N --revprop svn:log URL

URL위는 이미 작업 디렉토리에있는 경우 선택 사항입니다. 그러면 메시지를 변경할 수 있도록 편집기가 나타납니다.


1

클라이언트에 Tortoise SVN을 사용하고 Windows 서버에서 VisualSVN을 사용하여 정확한 문제로이 게시물을 건너 왔습니다.

당신은이 일이 있다면 "는 DAV 요청이 실패했습니다" 오류 메시지가, 한 번 봐 줄 앤드류 Aylett의 답변을 하고 저장소 후크 하위 디렉토리에 편집 "사전 revprop-change.tmpl"를 이동합니다.

이 작업이 완료되면 상황에 맞는 메뉴에서 "로그 메시지 편집"을 누르면 마침내 작동합니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.