VisualSVN:允许修改svn提交日志(pre-revpro-change hook)
2016-12-13 11:12
453 查看
我们的svn服务器是使用windows平台的VisualSVN Server,有时SVN提交之后,发现忘记写提交说明了,这时需要修改日志信息,然后就报错了:
错误提示的意思说Repositories不接受修改日志,需要要创建一个
hook,顾名思义,就是svn在执行一个动作之前调用的用户自己定义代码(用户没有自定义的情况下就使用默认设置)。这个代码在windows下是bat脚本或exe程序,在linux下是shell或python脚本。
visualSVN Server每个Repositories下都有一个hooks文件夹,如下图,已经有一堆tmpl文件,这些文件其实就是linux 的shell脚本模板,pre-revpro-change.tmpl就是linux版的
但是VisualSVN server运行在Windows平台,所以这些hook脚本是不可能能执行的。但只要照着这些hook模板代码的逻辑用bat脚本重写这些脚本,就可以实现windows下的hook.
pre-revprop-change.tmpl模板的代码是这样的:
重写太麻烦了,在网找到了对应的bat脚本pre-revprop-change.bat,将这个脚本放到hooks文件夹下,就可以了。
关于设置hook脚本,如果你觉得复制脚本到hooks文件夹挺麻烦,在VisualSVN server上还有更简单的办法,打开VisualSVN Server控制台界面,如下图点开一个Repositories的Properties\Hooks界面
选中下图红框的Pre-revision property change hook,点击Edit编辑
将前面的脚本如下图复制进来点OK就可以了。
参考:
《SVN设置pre-commit和pre-revprop-change钩子》
http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/
http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
错误提示的意思说Repositories不接受修改日志,需要要创建一个
pre-revpro-change hook才行,问了度娘,搞清楚了。
hook,顾名思义,就是svn在执行一个动作之前调用的用户自己定义代码(用户没有自定义的情况下就使用默认设置)。这个代码在windows下是bat脚本或exe程序,在linux下是shell或python脚本。
visualSVN Server每个Repositories下都有一个hooks文件夹,如下图,已经有一堆tmpl文件,这些文件其实就是linux 的shell脚本模板,pre-revpro-change.tmpl就是linux版的
pre-revprop-change hook的模板,在linux下赋予执行权限就可以使用。
但是VisualSVN server运行在Windows平台,所以这些hook脚本是不可能能执行的。但只要照着这些hook模板代码的逻辑用bat脚本重写这些脚本,就可以实现windows下的hook.
pre-revprop-change.tmpl模板的代码是这样的:
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
重写太麻烦了,在网找到了对应的bat脚本pre-revprop-change.bat,将这个脚本放到hooks文件夹下,就可以了。
setlocal set REPOS=%1 set REV=%2 set USER=%3 set PROPNAME=%4 set ACTION=%5 if not "%ACTION%"=="M" goto refuse if not "%PROPNAME%"=="svn:log" goto refuse goto OK :refuse echo Cann't set %PROPNAME%/%ACTION%, only svn:log is allowed 1>&2 endlocal exit 1 :OK endlocal exit 0
关于设置hook脚本,如果你觉得复制脚本到hooks文件夹挺麻烦,在VisualSVN server上还有更简单的办法,打开VisualSVN Server控制台界面,如下图点开一个Repositories的Properties\Hooks界面
选中下图红框的Pre-revision property change hook,点击Edit编辑
将前面的脚本如下图复制进来点OK就可以了。
参考:
《SVN设置pre-commit和pre-revprop-change钩子》
http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/
http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
相关文章推荐
- VisualSVN:允许修改svn提交日志(pre-revpro-change hook)
- svn通过hook开启修改提交日志权限pre-revprop-change
- 允许用户修改svn日志的钩子脚本
- VisualSVN Server提交前必须写日志和修改以往日志出错解决办法
- 修改svn提交后的日志
- svn修改已经提交过记录的日志和作者
- 如何修改SVN中已提交的日志
- 只允许修改自己的svn日志的钩子脚本
- 设置SVN服务器允许修改日志
- svn 客户端允许修改客户历史日志
- Centos 配置SVN必须填写日志才能提交修改
- SVN:修改已提交日志信息
- 允许用户修改svn日志的钩子脚本
- svn钩子:pre-revprop-change,允许修改注释
- VisualSVN 配置提交svn时强制输入日志
- 如何修改SVN中已提交的日志
- Svn修改日志提交消息
- VisualSVN设置空修改日志不可提交
- SVN修改已提交版本的日志