永久删除SVN的修订版

时间:2012-05-31 13:43:10

标签: svn backup backup-strategies

序言

我的SVN托管由第三方提供,将我的使用限制为300MB。由于该项目只有中等规模,我从没想过这会是一个问题。一旦应用程序投入生产,我意识到我需要某种备份机制。所以我编写了一个shell脚本,用于导出数据库并压缩用户上传的文件。然后我将.sql和.zip文件都提交给SVN(SVN服务器不在与应用程序相同的机器上运行)。

然后今天我注意到我超过了配额。我很快意识到这一定是因为备份。

最后......问题

因为.zip是一个二进制文件,我想每次提交时都会将整个文件添加到存储库中(而对于文本文件,只添加了diff)? .zip文件目前约为60MB,因此备份脚本每天运行,我只能在SVN中存储5天的备份。

无论如何,我计划通过以下方式改善这种情况:

  • 更改备份脚本,以便将.zip的大小与SVN中的最新.zip进行比较,并且只有在它们不同时才会提交。如果自上次备份运行以来没有用户上传文件,则两者的大小相同

  • 从SVN中删除所有旧版本的.zip文件以释放一些配额。但是,我不知道这是否真的可行?我的理解是,即使我从工作副本中删除文件并提交删除,该文件也将从存储库的HEAD中删除,但所有以前提交的版本仍将存在(使用我的宝贵配额)。 / p>

是否有某些方法可以永久删除所有旧版本的.zip,并使用上述更有效的备份策略重新开始。

1 个答案:

答案 0 :(得分:2)

您应该做以下事情来解决问题:

  • 如果您有可能,请从存储库中删除所有提交的zip文件。请参阅SVN红皮书中的Filtering Repository History一章。
  • 将来,请将您的zip文件保存在其他位置。将大二进制文件添加到SVN仓库并不是一个好主意,即使二进制差异很好。
如果包含二进制数据,

200 MB并不多。如果它仅供参考,那就足够了。