星期二, 9月 21, 2010

修改 Subversion 的 Log Message

不知各位在使用 Subversion 的時後,是否常常在上傳 Log Message 後覺得自己好像沒有寫的很好,或是有些時候想改一下某版本的 Log Message..
今天分享一下如何修改 Subversion 的 Log Message,大家看圖說故事吧!

先選擇要修改哪一個版本

image

寫入要修改的文字

SNAGHTML8416800

出現錯誤拉..><||..
看了一下錯誤,原來是權限的問題,subversion 預設是不允許回去改 Message Log 的,所以要去改 Server 端的權限

SNAGHTML8420ed9

修改 Server 端的 VisualSVN Server 的權限

image

修改 Pre-revision property change hook

image

把下面提供的 script 貼到這裡面,就可以啦

image

Script

@ECHO OFF

set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow changes to svn:log. The author, date and other revision
:: properties cannot be changed
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%propname%'=='svn:log' goto ERROR_PROPNAME

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow modifications to svn:log (no addition/overwrite or deletion)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%action%'=='M' goto ERROR_ACTION

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Make sure that the new svn:log message contains some text.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set bIsEmpty=true
for /f "tokens=*" %%g in ('find /V ""') do (
set bIsEmpty=false
)
if '%bIsEmpty%'=='true' goto ERROR_EMPTY

goto :eof



:ERROR_EMPTY
echo Empty svn:log properties are not allowed. >&2
goto ERROR_EXIT

:ERROR_PROPNAME
echo Only changes to svn:log revision properties are allowed. >&2
goto ERROR_EXIT

:ERROR_ACTION
echo Only modifications to svn:log revision properties are allowed. >&2
goto ERROR_EXIT

:ERROR_EXIT
exit /b 1

上面這段 script 很簡單,看不懂的就貼上去就好了 囧rΩ..

參考:
http://subversion.tigris.org/

http://svn.haxx.se/users/archive-2006-03/0107.shtml