• SVN允许修改日志


    1。强制写日志
    在每次提交的时候写明提交的目的是一个很好的习惯,Subversion默认没有提供,但是可以通过钩子实现:将下面的代码存为放到版本库的hooks目录下即可,当你不写日志提交的话就会报告错误。
    文件名:pre-commit-log.bat
    @echo off
    setlocal
    set REPOS=%1
    set TXN=%2
    rem check that logmessage contains at least 5 characters
    svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
    if %errorlevel% gtr 0 goto err
    exit 0
    :err
    echo Empty log message not allowed. Commit aborted! 1>&2
    exit 1

    2。可以修改历史日志
    历史上的日志写的不好,我们希望修改,默认对Subversion是不允许的,并且会提示需要创建pre-revprop-change钩子。最简单的方式是创建一个空白的pre-revprop-change.bat文件放到版本库的hooks目录下,但是这种方式不够严格,用户具备了修改所有属性的权利,例如修改作者的权利(可以提交垃圾然后栽赃嫁祸了)。所以要限制用户只能修改日志,所以有了下面的代码,将其存为pre-revprop-change.bat放到版本库的hooks目录下即可。
    文件名:pre-revprop-change.bat
    REM SVN pre-revprop-change hook allows edit of logmessages from TSVN

    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

    摘自:http://www.cnblogs.com/greatqn/articles/1272769.html

    版本库生成后,hooks目录下就存在一些钩子脚本的模板,用户可以作为参考。把pre-revprop-change.tmpl复制为pre-revprop-change.bat,再修改里面的脚本,钩子就设置好了。

    for /f "usebackq" %%k in (`svnlook author %1 -r%2`) do @set var=%%k

    if "%3" == "%var%" goto test
    if "%3" == "li"    goto test
    exit 1

    :test
    if "%4" == "svn:log" exit 0
    echo Property '%4' cannot be changed >&2
    exit 1


     

    只允许用户修改自己的svn日志的钩子脚本

  • 相关阅读:
    PHP 文件上传
    浅析文件上传漏洞
    JS之Number类
    JS之String类
    Java中的多态
    JS之数据类型
    JavaScript的组成
    双向链表与LRU算法实现
    字符串比较--小问题大智慧
    龙生九子-浅谈Java的继承
  • 原文地址:https://www.cnblogs.com/zerovirs/p/3381740.html
Copyright © 2020-2023  润新知