7

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

4

3 回答 3

7

我不认为颠覆中有一种方法可以告诉不要对特定文件进行版本控制,或者至少在删除时忘记文件。因为它违背了版本控制系统的目的。如果您有本地存储库,则可以通过一些调整来实现这一点。但是,如果没有对存储库的任何管理员访问权限,就不可能做到这一点。

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

于 2010-10-04T11:43:17.410 回答
6

看这个:

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

在某些特殊情况下,您可能想要销毁文件或提交的所有证据。(也许有人不小心提交了一份机密文件。)这并不容易,因为 Subversion 被刻意设计为永远不会丢失信息。修订是相互依赖的不可变树。从历史中删除修订会导致多米诺骨牌效应,在所有后续修订中造成混乱,并可能使所有工作副本无效。

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

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

于 2010-10-03T06:17:28.083 回答
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
于 2010-10-03T06:36:29.527 回答