如何修改SVN已提交项目的message log

时间:2023-03-08 16:49:44

直接在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.修正上一版本出现的错误"