今天剛提交完東西,就發現我提交的log里面有語法錯誤,想改一下。
Google了一下,修改的辦法。
有兩個命令可以完成:
客戶端:
svn propset svn:log "xxxxxx" -r10** URL --revprop
服務端:
svnadmin setlog REPOS_PATH -r REVISION FILE
但是服務器端默認是不能修改log的,需要做配置。
管理員賬戶進入到SVN倉庫目錄下,找到需要修改的倉庫,例如myapp,使用如下命令操作:
cd myapp/hooks
cp pre-revprop-change.tmpl pre-revprop-change
chmod a+x pre-revprop-change
其實這個文件的內容很簡單,貼一下。
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1
========================Windows======================
svn的任何一個庫的目錄結構是下面這樣的(我以我機器上C#的庫為例子)
D:\svn_home\csharp
├─conf
├─db
│ ├─revprops
│ │ └─0
│ ├─revs
│ │ └─0
│ ├─transactions
│ └─txn-protorevs
├─hooks
└─locks
-----------------------------------------
要實現允許修改log這個功能,只需要在hooks目錄下增加一個名為:pre-revprop-change.bat的文件,重啟svn即可。
該文件內容為:
-----------------------------------------------------------
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1
-----------------------------------------------------------
