在svn存储库中Nuking巨大的文件

Dar*_*enW 17 svn large-files

作为本地subversion czar,我向每个人解释只保留存储库中的源代码和非大文本文件,而不是巨大的二进制数据文件.可能是较小的二进制文件,它们是测试的一部分.

不幸的是我与人类合作!有人可能有一天偶然会犯下一个800MB的二进制垃圾箱.这会降低存储库操作的速度.

上次我检查过,您无法从存储库中删除文件; 只是让它不是最新版本的一部分.如果有人想要回忆该日期或修订号的存储库状态,存储库会永久保留怪物.

有没有办法真正删除该怪物文件,最终得到一个像样的大小的存储库?我已经尝试过svnadmin dump/load的东西,但这很痛苦.

Vey*_*nom 17

要永久删除svn存储库中的怪物文件,除了使用svnadmin dump/load之外没有其他解决方案.(SVN Book:dump命令)

为了防止提交大文件,可以使用钩子脚本.举例来说,只要有人试图提交到存储库,就可以运行"预提交"的脚本.该脚本可能会检查filesize或filetype,如果它包含一个或多个文件太大或"禁止"类型,则拒绝提交.

钩子脚本的更典型用法是检查(预提交)提交包含日志消息,或(提交后)电子邮件提交的详细信息或使用新提交的文件更新网站.

钩子脚本是为响应对存储库事件的响应而运行的脚本(SVN Book:Create hooks).


San*_*ken 13

有关此内容的一些额外信息可以在博客文章中找到:Subversion Obliterate,缺失的功能

一定要仔细阅读评论,卡尔福格尔将文章放在透视中:-)

  • 链接页面现在是404.希望通过编辑来保持此答案的最新状态. (2认同)