作为本地subversion czar,我向每个人解释只保留存储库中的源代码和非大文本文件,而不是巨大的二进制数据文件.可能是较小的二进制文件,它们是测试的一部分.
不幸的是我与人类合作!有人可能有一天偶然会犯下一个800MB的二进制垃圾箱.这会降低存储库操作的速度.
上次我检查过,您无法从存储库中删除文件; 只是让它不是最新版本的一部分.如果有人想要回忆该日期或修订号的存储库状态,存储库会永久保留怪物.
有没有办法真正删除该怪物文件,最终得到一个像样的大小的存储库?我已经尝试过svnadmin dump/load的东西,但这很痛苦.
要永久删除svn存储库中的怪物文件,除了使用svnadmin dump/load之外没有其他解决方案.(SVN Book:dump命令)
为了防止提交大文件,可以使用钩子脚本.举例来说,只要有人试图提交到存储库,就可以运行"预提交"的脚本.该脚本可能会检查filesize或filetype,如果它包含一个或多个文件太大或"禁止"类型,则拒绝提交.
钩子脚本的更典型用法是检查(预提交)提交包含日志消息,或(提交后)电子邮件提交的详细信息或使用新提交的文件更新网站.
钩子脚本是为响应对存储库事件的响应而运行的脚本(SVN Book:Create hooks).
有关此内容的一些额外信息可以在博客文章中找到:Subversion Obliterate,缺失的功能
一定要仔细阅读评论,卡尔福格尔将文章放在透视中:-)