今天刚提交完东西,就发现我提交的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
-----------------------------------------------------------