1. 程式人生 > >如何修改SVN已提交專案的message log

如何修改SVN已提交專案的message log

直接在TortoiseSVN中修改過往日誌,會提示:

DAV request failed;it's possible that the repository's pre-revprop-change hook either failed or is non-existent
At least one property change failed; repository is unchanged.

因為SVN庫中的日誌本身是沒有進行版本管理的,為防止誤操作導致原日誌資訊丟失,所以預設禁止對其進行修改。如果要能在客戶端進行修改,必須在repository的hook目錄下新建一個pre-revprop-change.bat

,內容如下:

if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1

在屬性修改前,該指令碼會被執行,如返回0即表示同意修改。另外,注意該目錄下本就有一個pre-revprop-change.tmpl,但那個是xNix的shell指令碼,windows平臺貌似不太好用。

然後在客戶端就可以正常修改了,其後臺應該是呼叫類似下面的命令:

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

也可以在服務端通過執行下面的命令來做同樣的事情,其中FILE是儲存新日誌資訊的檔案路徑:

svn propset --revprop  -r 282 svn:log   "1.新增WIFI SDIO 控制器驅動 2.修正上一版本出現的錯誤"