SVN服务器占用大量空间

SVN服务器占用大量空间

我很久以前就创建了一个 SVN 服务器。我一直在存储一些二进制文件(doc 文件)和代码。每次编辑后,大小都会增加,因为 SVN 会保存二进制文件的新副本。现在 svn 占用了大量空间。

Q1. 我想删除二进制文件的所有先前版本,但保留代码的先前版本,我该怎么做?

Q2. SVN 中是否有任何可以自定义的设置?例如“特定文件夹不存储超过 10 个修订版本”。

答案1

在 Subversion 中销毁数据的唯一方法是将存储库转储到文件中;运行它svndumpfilter并再次加载。svndumpfilter 仅适用于路径,而不适用于修订,因此,为了您的目的,我建议您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

这将为您留下一份存储库副本,包括完整历史记录,但没有有问题的路径;您将在历史记录中看到对这些路径进行提交的空修订版本。(有一些选项可以svndumpfilter删除这些,但在大多数情况下,您可能希望保留修订编号。)

至于自动化,您可以使用提交后钩子来编写此过程的脚本,但这在大型存储库上非常耗时。如果您不需要它们的历史记录,那么最好根本不要在 SVN 中存储二进制文件。

答案2

我担心你不能“开箱即用”,进去的东西就是要留下来。你可以通过转储存储库、过滤文件并再次导入来删除文件 - 但这很麻烦。

查看此讨论:12

相关内容