zoukankan      html  css  js  c++  java
  • svn 要求强制写日志

    windows下svn限制强制写日志及只能修改自己日志脚本

    下面是我在svn1.5 下经过测试的绝对可用的脚本,特把正确的脚本分享给大家,希望能给也需要设置功能,被一些不正确的脚本搞的头大的朋友一些帮助。

    1、svn客户端修改日志功能(且只能修改自己日志)
    找到版本库中hooks目录下,将pre-revprop-change.tmpl文件复制为pre-revprop-change.bat文件,然后将pre-revprop-change.ba文件内容改为:

    set repos=%1
    set rev=%2
    set user=%3
    set propname=%4
    set action=%5

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

    set rightUser=0
    if "%3" == "%superUser%"  set rightUser=1
    if "%3" == "%var%" set rightUser=1

    if %rightUser% == 0 goto ERROR_USER

    goto :SUCCESS_EXIT

    :ERROR_USER
    echo 只允许用户修改自己的日志 >&2
    goto ERROR_EXIT

    :ERROR_EXIT
    exit 1

    :SUCCESS_EXIT
    exit 0

    2、到版本库中hooks目录下,将pre-commit.tmpl文件复制为pre-commit.bat文件,然后将pre-commit.bat 文件内容改为:
    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 提交必须写日志!>&2
    exit 1
     
    3.Linux
    pre-commit.tmpl,然后更名pre-commit并加上执行权限:
    #!/bin/sh

    REPOS
    ="$1"
    TXN
    ="$2"

    RES
    ="OK"
    # Make sure that the log message contains some text.
    SVNLOOK=/app/subversion/bin/svnlook
    $SVNLOOK log -"$TXN" "$REPOS" | egrep "[^[:space:]]+" >/dev/null || unset RES
    if [ "$RES" != "OK" ]
    then
        echo 
    "You must input some comments for you commit" >&2
        
    exit 1
    fi

    # All checks passed, so allow the commit.
    exit 0
  • 相关阅读:
    OneThink学习笔记02----数据字典(即OneThink项目数据库里的表及其字段)
    php获取checkbox复选框的内容
    OneThink学习笔记01
    解决jQuery UI 对话框兼容性问题
    安装Visual Studio 2013 出现0x80070643错误
    科幻小说网1.0构思
    数据结构之二分查找(PHP)
     兼容性问题
    【转】Apache的Order Allow,Deny 详解
    adb错误解决
  • 原文地址:https://www.cnblogs.com/jamin/p/1334091.html
Copyright © 2011-2022 走看看