2012-05-11 9 views
3

커밋이 발생한 후 파일의 svn 속성을 편집해야합니다. 그러므로 post-commit 스크립트를 사용하고 싶습니다.비대화 형 스크립트에서 svn propedit

예 :

나는 내가 가진 성공한 커밋 포스트 후크를 일부 스마트 일을하는 (즉, 아무튼 커밋 내 후 example.ex 라는 파일을 커밋 할 때 test로 설정된 값 export라는 속성이 있습니다 내 문제는 중요하지 않음) 완료 후 속성 exportsucceeded과 같은 새 값으로 변경 (또는 삭제)해야합니다.

명령 행에서 나는 이것을 사용합니다 :

svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex 

이 내 시스템 편집기 vi 열립니다 나는 값 test을 볼 수 있습니다. 내가 원하는대로로 변경하고 저장하고 :wq

서브 버전처럼 VI 명령을 사용하여 파일을 종료 강해서 잘이

"svn-prop.tmp" 1L, 10C written 
Set new value for property 'export' on file:///svn/repositoryName/path/to/file/in/repository/example.ex' 
Committed revision 67. 

과 같은 메시지를 다시 제공 할 수 있습니다. 그러나 내가 말했듯이, 나는 post-commit 스크립트에서 vi를 제어 할 수 없기 때문에 (또는 내가 잘못 했나요?) 필요합니다.

Subversion을 사용하면 propedit 명령에 파일을 추가 할 수 있습니다. 파일에 새 값 succeeded 만 있습니다.

svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex --file /path/to/propertyValueFile/propValue.file 

을 그리고 여기에 문제의 :

새로운 명령은 다음과 같아야합니다 마지막 명령이 작동하지 않습니다. 다시 vi이 열리고 수동으로 값을 변경해야합니다. 왜? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

좋아, 그 사이에 나는 --file 로그 메시지로이 파일의 내용을 사용할 것을 깨달았다. 그럼에도 불구하고 동일한 문제 : 스크립트에서 필요합니다. – derroman

답변

2

해결책을 찾았습니다. 저에게 효과적입니다.

svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex --file /data/svn/intranet/hooks/fileWithLogMessage --editor-cmd "echo succeeded >" 

--editor-cmd는 다른 편집기를 제공하고 나는 echo newValueForProp와 propedit보다 현명 할 수 있습니다.

이제 매력처럼 작동합니다.

-

0

svn propedit 대신 svn propset을 사용해보세요. propedit항상을 사용하면 외부 편집기가 열립니다.

+0

아니요. 속성이 이미 설정된 경우 svn propset이 작동하지 않기 때문에 솔루션이 아닙니다. 그러나 나는 그 해결책을 혼자서 발견했다. 그러나 어쨌든 고마워. – derroman

관련 문제