SVNServer常用HOOK

梦想游戏人
目录:
未分类

svn server 可通过hook的方式  来自定义SVN 行为控制,这里列几个常用的。

1.限制单个提交文件大小不超过100MB

Pre-commit hook

@echo off
setlocal enabledelayedexpansion
set REPOS=%1
set TXN=%2
rem MAX_SIZE value is byte
set MAX_SIZE=104857600
for /f "delims=" %%a in ('svnlook changed -t %TXN% %REPOS%') do (
set var=%%a
for /f %%i in ('svnlook filesize -t %TXN% %REPOS% !var:~4!') do (
if %%i gtr %MAX_SIZE% (
set /a size=%%i/1024
echo file size upto limit 100MB. File: !var:~4! Size: !size!KB 1>&2
exit 1
)
)
)
exit 0

2.可修改提交记录

Pre-revision property change hook

SET REPOS="%1"
SET REV="%2"
SET USER="%3"
SET PROPNAME="%4"
SET ACTION="%5"
IF %ACTION% == "M" (IF %PROPNAME% == "svn:log" (EXIT 0))
ECHO "Changing revision properties %PROPNAME% is prohibited" >&2
EXIT 1

这些脚本都是 批处理(.sh .bat)的脚本 不同的操作系统下hook代码是不一样的。

Scroll Up