在我的SVN仓库中释放空间

7

我有一个托管在免费网站上的SVN存储库,它有最大的存储库大小限制。随着我接近这个容量,我意识到我已经检入的文件可以永久删除以释放磁盘空间。我该如何告诉SVN一个文件不仅可以被删除,而且它的历史记录也可以被删除?

3个回答

7
我认为在Subversion中没有一种方法可以告诉它不要对特定文件进行版本控制,或者至少在删除文件时忘记它。因为这违背了版本控制系统的目的。如果您有本地存储库,则可以通过一些调整来实现此目的。但是,如果没有对存储库的任何管理员访问权限,则无法做到这一点。
如果有帮助,rsvndump 是一个工具,用于获取远程存储库的转储。使用此工具,您将能够将存储库转储到本地系统。要删除不需要的文件,您可以使用此命令“cat xxx-svn-dump | svndumpfilter exclude $file > new-svn-dump”。虽然使用此方法可以减小存储库的大小,但您将无法使用此内容更新原始存储库。

6

看这个:

http://subversion.apache.org/faq.html#removal 说:

有特殊情况,您可能想要销毁一个文件或提交的所有证据。(也许有人意外提交了一份机密文件。) 这并不容易,因为Subversion被刻意设计为永远不会丢失信息。修订版是不可变树,它们相互建立。从历史记录中删除修订版将引起一个多米诺骨牌效应,在所有后续修订版中创建混乱,并可能使所有工作副本无效。

此SO答案中的可能解决方案:

从SVN历史记录中删除文件内容


3
你可以修剪你的历史记录。比如说你有100个版本,你可以保留最新的50个版本。这样做也可以减小你的Subversion仓库的大小。
svnadmin dump /path/to/current/repo -r50:100 > newsvn.dump
# you can delete the old repo and then
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < newsvn.dump

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接