释放我的SVN存储库中的空间

时间:2010-10-03 06:12:49

标签: svn repository delete-file obliterate

我在免费增值网站上托管了一个SVN存储库,其存储库大小最大。当我接近这个容量时,我知道我检查过的文件,我知道我可以永久删除以释放磁盘空间。如何告诉SVN文件不仅可以删除,而且还有历史记录?

4 个答案:

答案 0 :(得分:7)

我认为subversion中没有一种方法可以告诉您不要对特定文件进行版本控制,或者至少在删除时忘记文件。因为它打败了版本控制系统的目的。如果您有本地存储库,您将能够通过一些调整来实现这一目标。但是,如果没有对存储库的任何管理员访问权限,则无法执行此操作。

如果有帮助,rsvndump是一个转储远程存储库的工具。有了这个,您将能够将存储库转储到本地系统。要删除不需要的文件,可以使用此命令“cat xxx-svn-dump | svndumpfilter exclude $ file> new-svn-dump”。尽管如此,您可以减小存储库的大小,但您将无法使用此内容更新原始存储库。

答案 1 :(得分:6)

看看这个:

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

  

您有特殊情况   可能想破坏所有的证据   文件或提交。 (也许有人   不小心承诺保密   文件。)这不是那么容易,因为   颠覆是故意设计的   从不丢失信息。修改是   不可改变的树,建立在一个   另一个。从中删除修订   历史将导致多米诺骨牌效应,   在随后的所有时间里制造混乱   修改和可能无效   所有工作副本。

这个SO答案的可能解决方案:

Delete file contents from SVN history

答案 2 :(得分: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

答案 3 :(得分:1)

如果您可以在没有提交历史记录的情况下生存,则可以签出代码,删除当前存储库,创建新的存储库,然后将代码提交到新的存储库。