我们的 SVN 存储库已经变得非常臃肿,需要减肥。我将其转储并过滤掉明显的罪魁祸首。经过第四轮过滤,转储文件仍然过于臃肿。有没有办法确定哪些文件占用了最多的空间?
现在,对于那些可能下意识地用 WinDirStat / SpaceMonger 做出反应的人,我需要重申,这是 SVN。这些是相同文件的多个副本。
再一次,查看 /db/revs 文件夹,它可能就这么简单(只需几个额外的步骤)。
欢迎您的建议。
更新
我找到了一条替代路径,我认为这条路径对于我们的情况比较独特,所以我会接受懒獾的回答。
出于好奇,我按大小对 /db/revs/0 文件夹进行了排序,因为每个文件都对应其特定的修订版本。从最大的修订版本开始,我查看提交日志,能够确定哪些二进制文件(尽管后来被删除)占用了所有空间,并将它们过滤掉。
回购量缩减了 92%。
答案1
- 即使你知道占用大量空间,你也会这么做吗?用 |svndumfilter 重写历史记录,然后打破它?坏主意(tm)
- 无论如何,您可以迭代所有修订,使用 收集更改,
svnlook changed
使用 文件大小svn filesize
... 并更深入地思考它(添加和删除了后续对象,fe)。因为即使在大型文本文件中,文本差异也不像更改的二进制文件那样糟糕