SVN服务器占用大量空间

我很久以前就创build了一个SVN服务器。 我一直在存储一些二进制文件(doc文件)以及代码。 每增加一个编辑大小,SVN都会保存一份新的二进制文件。 现在svn占据了很多空间。

Q1。 我想删除所有以前版本的二进制文件,保持我的代码先前的版本不变,我该怎么做?

Q2。 也有SVN的任何设置,我可以定制它? 就像“对于特定文件夹不要存储超过10个修订”。

破坏Subversion中数据的唯一方法是将存储库转储到文件中; 通过svndumpfilter运行并重新加载。 svndumpfilter只能在path上工作,而不是修改,所以为了你的目的,我build议svn export你的二进制文件夹,然后再进行下面的操作:

 svnadmin dump <repo root> > file.dump cat file.dump | svndumpfilter exclude <repo path containing binaries> > file-new.dump svnadmincreate <new repo root> svnadmin load <new repo root> < file-new.dump 

这将给你一个你的存储库的副本,包括完整的历史,但没有违规的path; 你会看到在那些提交这些path发生的历史空的修改。 (有一些选项svndumpfilter删除这些,但在大多数情况下,你可能想保留修订编号。)

至于自动化这个,你可以使用post-commit钩子来编写这个过程的脚本,但是在大型的仓库中这是非常耗时的。 如果你不需要他们的历史logging,你最好不要在SVN中存储二进制文件。

我很害怕你不能这样做,“开箱即用”是什么意思是留下来的。 您可以通过转储存储库,过滤文件并再次导入文件来删除文件 – 但这是一个痛苦。

检查这个讨论: 1,2 。