在redhat el5.0+svn1.5.6平台测试没有问题.
#!/bin/sh
REPOS="$1"
TXN="$2"
RES="OK"
#此处更改大小限制,这里是10M
MAX_SIZE=10240000
#此处增加限制文件后缀名
FILTER='\.(zip|rar|o|obj|tar|gz)$'
# Make sure that the log message contains some text.
#SVNLOOK=/usr/bin/svnlook
SVNLOOK=/opt/CollabNet_Subversion/bin/svnlook
$SVNLOOK log -t "$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
files=$($SVNLOOK changed -t $TXN $REPOS |awk '{print $2}')
for f in $files
do
#check file type
if echo $f|tr A-Z a-z|grep -Eq $FILTER
then
echo "File $f is not allow ($FILTER) file" >&2
exit 1
fi
#check file size
filesize=$($SVNLOOK cat -t $TXN $REPOS $f|wc -c)
if [ "$filesize" -gt "$MAX_SIZE" ]
then
echo "File $f is too large(must <=$MAX_SIZE)" >&2
exit 1
fi
done
# All checks passed, so allow the commit.
exit 0
分享到:
相关推荐
通常,hooks 脚本位于 SVN 仓库的 `hooks` 目录下,每种类型的 hook 都有一个对应的脚本文件,如 `pre-commit.sample`、`post-commit.sample` 等。你需要根据自己的需求修改这些样本脚本,然后去掉 `.sample` 扩展名...
Windows下,svn提交时限制单个文件大小
为了满足开发人员的需求,本项目旨在基于SVN构建一个全文搜索功能,该功能将允许用户通过Web界面进行文本内容的检索,并展示相关的代码文件路径。具体来说,目标包括: 1. **内容检索功能**:支持对文本文件中的...
本文将深入探讨“svn强制写日志hooks”这一主题,它与Subversion的钩子脚本(hooks)密切相关,这些脚本允许在执行特定操作时执行自定义的服务器端逻辑,例如提交日志消息。 首先,了解“hooks”在svn中的作用至关...
这个脚本会遍历XML日志,查找指定日期的提交,然后执行`svn delete`命令删除对应文件。当然,你需要替换`https://your-svn-repo-url/`为实际的SVN仓库URL。 另外,`删除以日期命名的文件夹.bat`可能是用来删除以...
标题 "svn patch 小工具 (自动提取改动文件)" 暗示了这是一个关于版本控制系统Subversion(简称svn)和patch文件处理的工具。Subversion是广泛使用的版本控制软件,用于跟踪和管理代码库中的更改。patch文件则通常...
压缩包子文件的文件名称列表中有一个名为"kill-svn-folders.reg"的文件,这看起来是一个Windows注册表文件。通常,注册表文件用于导入或导出Windows注册表项,但在这个上下文中,它可能包含一个指向批处理脚本或特定...
`commit-email.pl` 是一个Perl脚本,通常作为SVN服务器的post-commit钩子,当用户提交代码到SVN仓库后,该脚本会被触发,然后自动发送一封包含提交详情的邮件给指定的收件人。这不仅提高了团队协作效率,也确保了...
是否遇到过公司里的sx向svn提交了不该提交的文件?.sdf debug release 等等,是否对此感到崩溃?!是否svn仓库已经占用了大量的磁盘空间? 使用本图形化工具帮助你将这些文件彻底地从svn中删除。 先导出svn仓库 ...
SVN,全称为Subversion,是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更历史。在软件开发过程中,SVN扮演着至关重要的角色,它帮助团队成员协同工作,跟踪并记录每一次修改,确保代码的...
一为hooks的目录,一为svn服务器端的svnlook所在的目录),即可限制svn客户端的提交情况,例如文件后缀、日志、文件总大小、文件个数等,也可以设置超级用户名,不受限制。注意看注释,最好有一定的批处理基础,更...
在本案例中,我们需要创建一个预提交(pre-commit)钩子脚本来实现两个功能:禁止除特定用户外的所有人删除文件,并且强制所有提交必须包含至少10个字符的注释。 首先,我们来理解一下这个`pre-commit.bat`钩子脚本...
使用这个功能时需要注意的是,操作应当谨慎,因为一旦删除了`.svn`文件,该目录下的文件将不再受SVN版本控制。如果误删,可能丢失版本历史信息,无法回溯到之前的版本。因此,在执行此操作前,最好确保你确实希望从...
1. **冲突产生**: 当两个或更多用户修改了同一份文件的同一部分时,svn无法确定应保留哪个更改,就会产生冲突。 2. **冲突标记**: 有冲突的文件会被svn添加特殊的冲突标记,例如`, `=======`, `>>>>>>>`,以区分...
SVN提供了一种机制来忽略特定的文件或目录,即通过设置`.svnignore`文件来指定哪些文件或目录不应被纳入版本控制。这有助于避免意外地将某些文件添加到版本库中。如果已经有一些文件被错误地加入了版本控制,那么...
在服务器通过设置svn服务端钩子可以强制开发人员提交注释和限制指定类型的文件提交。
描述中提到的`del_svn.bat`文件很可能是一个批处理脚本,用于自动化删除指定目录下的所有`.svn`文件。批处理是Windows系统中的一种脚本语言,通过编写简单的命令行指令组合,可以批量执行任务。 以下是一个基本的...
4. **协同开发**: 当多个开发者同时修改数据库脚本时,SVN的合并功能可以帮助解决冲突,确保团队的同步工作。 5. **备份与恢复**: SVN仓库可以视为一种备份机制。如果需要恢复数据库到某个特定版本,只需回退相应的...
3. **指定文件**:进一步地,我们可以指定一个或多个文件路径,以获取这些特定文件在上述条件下的版本。 4. **查询版本**:使用SVN的命令行工具或图形用户界面,执行查询操作,列出所有符合条件的提交及其对应的...
如果这个文件是批处理脚本,用户可以通过运行它来执行SVN目录的清理,而不依赖于注册表脚本的右键菜单功能。 "readme.txt"通常是一个说明文件,提供了关于如何使用这些文件、注意事项、可能的问题以及解决方案等...