首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

SVN钩子 start-commit.tmpl 统计用户下传计数

2012-08-01 
SVN钩子 start-commit.tmpl 统计用户上传计数重写/%SVN_HOME%/Repos/hooks/start-commit.tmpl 改名为/%SVN

SVN钩子 start-commit.tmpl 统计用户上传计数

重写/%SVN_HOME%/Repos/hooks/start-commit.tmpl

改名为/%SVN_HOME%/Repos/hooks/start-commit

start-commit.tmpl修改如下:

?

#!/bin/sh# START-COMMIT HOOK## The start-commit hook is invoked before a Subversion txn is created# in the process of doing a commit.  Subversion runs this hook# by invoking a program (script, executable, binary, etc.) named# 'start-commit' (for which this file is a template)# with the following ordered arguments:##   [1] REPOS-PATH   (the path to this repository)#   [2] USER         (the authenticated user attempting to commit)## The default working directory for the invocation is undefined, so# the program should set one explicitly if it cares.## If the hook program exits with success, the commit continues; but# if it exits with failure (non-zero), the commit is stopped before# a Subversion txn is created, and STDERR is returned to the client.## On a Unix system, the normal procedure is to have 'start-commit'# invoke other programs to do the real work, though it may do the# work itself too.## Note that 'start-commit' must be executable by the user(s) who will# invoke it (typically the user httpd runs as), and that user must# have filesystem-level permission to access the repository.## On a Windows system, you should name the hook program# 'start-commit.bat' or 'start-commit.exe',# but the basic idea is the same.# # The hook program typically does not inherit the environment of# its parent process.  For example, a common problem is for the# PATH environment variable to not be set to its usual value, so# that subprograms fail to launch unless invoked via absolute path.# If you're having unexpected problems with a hook program, the# culprit may be unusual (or missing) environment variables.# # Here is an example hook script, for a Unix /bin/sh interpreter.# For more examples and pre-written hooks, see those in# the Subversion repository at# http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/ and# http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/REPOS=$1USER=$2#记录用户COMMIT次数的文件RECORDPATH=/svn/Repos/commitRecord/$USERif [ -f $RECORDPATH ]; then#从文件中读取已经上传的次数COMMIT_TIMES=`cat $RECORDPATH | awk '{print $1}'`#清除之前的记录rm -f $RECORDPATHelseCOMMIT_TIMES=0;fi#把次数加一COMMIT_TIMES=`expr ${COMMIT_TIMES} + 1`#写次数到记录文件echo $COMMIT_TIMES >> $RECORDPATH#commit-allower.pl --repository $REPOS --user $USER || exit 1#special-auth-check.py --user $USER --auth-level 3 || exit 1# All checks passed, so allow the commit.exit 0

?

热点排行