商会资讯

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

搜索
热搜: 活动 交友 discuz
查看: 8079|回复: 0
打印 上一主题 下一主题

VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

[复制链接]

109

主题

1

好友

3774

积分

管理员

Rank: 9Rank: 9Rank: 9

  • ta_mind
    mb_qb7
    2013-3-19 01:56
  • classn_01: 366 classn_02

    [LV.9]以坛为家II

    跳转到指定楼层
    楼主
    发表于 2016-12-23 11:39:53 |只看该作者 |倒序浏览
    我们的svn服务器是使用windows平台的VisualSVN Server,有时SVN提交之后,发现忘记写提交说明了,这时需要修改日志信息,然后就报错了:
    0.jpg
    错误提示的意思说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下赋予执行权限就可以使用。
    1.jpg
    但是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界面
    2.jpg
    选中下图红框的Pre-revision property change hook,点击Edit编辑
    3.jpg
    将前面的脚本如下图复制进来点OK就可以了。
    4.jpg
    参考:
    《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/

    0.jpg (29.16 KB, 下载次数: 1236)

    0.jpg

    1.jpg (80.5 KB, 下载次数: 1279)

    1.jpg

    2.jpg (17.35 KB, 下载次数: 1243)

    2.jpg

    3.jpg (17.39 KB, 下载次数: 1243)

    3.jpg

    4.jpg (21.33 KB, 下载次数: 1225)

    4.jpg

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 转发到微博
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    回顶部