2010-02-02 4 views
79

많은 수의 SVN 커밋 메시지를 다른 구조에 다시 쓰고 싶습니다. 카테고리에 접두사를 붙입니다. 에서 :SVN 커밋 메시지를 소급 변경 하시겠습니까?

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

나는

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

svndumpfilter를 사용하여 전체 저장소를 덤프 포함하지을 수행하는이 작업을 수행 할 수있는 간단한 방법이 있을까요 싶어?

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

답변

91

예, 커밋 메시지를 변경할 수 있습니다. 그것들은 일반 파일 속성과 유사하게 버전에 대한 속성으로 구현됩니다.

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

+0

+1 감사합니다. 나머지 부분과는 별도로 커밋하고 싶었던 일부 API 변경과 관련된 작업을 수행했으며 실수로 전체 내용을 커밋하기 전에이를 반영하도록 로그 메시지를 작성했습니다. 나는 나머지를 설명하는 로그 메시지로 공백 변경을 커밋함으로써 "수정"했다! 다음에, 나는 무엇을해야하는지 알 것이다. –

+1

나는 +1을주었습니다. 그러나 "Repository가 Revision propchanges를 받아들이도록 설정되어 있지 않아서, 관리자에게 pre-revprop-change hook을 만들도록 요청했습니다"라는 메시지와 함께 작동하지 않았습니다. 관리자가 수행해야 할 작업을 자동으로 알 수 있습니까? –

+19

유능한 Subversion 관리자가 있다면 * me *를 묻는 중입니까? :) – JesperE

57

확실히 로그 메시지를 변경할 수 있으며 in the FAQ입니다. 난 당신 스크립트가 수, VisualSVN에 대한 명령 줄 인터페이스가 어떻게 작동하는지 모르겠어요,하지만 당신은 저장소 및 재로드를 덤프하지 않고 모든 개정에 대해이 작업을 수행하려면 명령 svn의 바닐라에 대한

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

이 될 것입니다 이 명령은 모든 개정판 목록에 대해 작업합니다. 저장소의 크기에 따라 이렇게하는 데는 다소 시간이 걸리지 만 원칙적으로 할 수없는 이유는 없으며 덤프 및 다시로드가 필요하지 않습니다.

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

+2

편집기를 사용하려면 :'svn propedit -r N svn : log'. –

+3

감사합니다. @kazark, 나는''svn propedit -r N --revprop svn : log'''을 내 편집기에서 메시지를 변경할 수 있도록해야했습니다. – tutuDajuju

+2

참고 사항을 추가하기 만하면 ** 기본적으로 ** 버전 속성 ** 변경 사항이 기본적으로 허용되지 않으므로 해당 명령이 작동하지 않습니다. 이것을 허락하기 위해서, svn 관리자는 ** "pre-revprop-change"**라는 훅을 만들어야합니다. 이 정보는 위에 언급 한 [FAQ] (http://subversion.apache.org/faq.html#change-log-msg)에 있습니다. Windows에서 –

24

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

저장소의 hooks 디렉토리에는 pre-revprop-change.tmpl이라는 파일이 있습니다. 로그 파일의 내용에 대한 몇 페이지의 주석이 있으며 로그 속성을 변경할 수 있도록 설정되어 있습니다. 그것을 가능하게하기 위해 파일의 이름을 pre-revprop-change로 바꾸고 실행 가능하도록 만듭니다. (POSIX에서 호스팅하는 서브 버전이라고 가정하고 있습니다. Windows를 사용하여 호스트하는 경우 this message이 유용 할 수 있습니다).

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

+0

+1 우수한 정보. 그것은 pre-revprop-change 후크없이 그것을하게하지 않을 것이다. 나는 템플릿 bash 스크립트를 윈도우에 포팅해야 할 것이지만, 문제는되지 않을 것이다. –

+0

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

1

정확히이 문제에 관해서는 클라이언트 용 Tortoise SVN과 Windows 서버상의 VisualSVN을 사용했습니다.

당신이 이 일어날 경우

저장소 후크 하위 디렉토리에 오류 메시지가 "사전 revprop-change.tmpl를"편집을 Andrew Aylett's answer 한 번 봐주고 간다 "는 DAV 요청이 실패했습니다."

이 작업이 끝나면 상황에 맞는 메뉴에서 "로그 메시지 편집"을 누르면 마침내 작동해야합니다! 당신이 작업 디렉토리에 이미 있다면

2

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

URL 위의 선택 사항입니다. 편집기가 나타나서 메시지를 변경할 수 있습니다.