前言
我的 SVN 托管由第三方提供,这将我的使用量限制为 300MB。由于该项目规模适中,我从没想过这会是个问题。一旦应用程序投入生产,我意识到我需要某种备份机制。所以我写了一个shell脚本来导出数据库并压缩用户上传的文件。然后我将 .sql 和 .zip 文件都提交到 SVN(SVN 服务器与应用程序不在同一台机器上运行)。
然后今天我注意到我已经超过了配额。我很快意识到这一定是因为备份。
最后......问题
因为 .zip 是一个二进制文件,我猜每次提交时都会将整个文件添加到存储库中(而对于文本文件,只添加差异)?.zip 文件目前约为 60MB,因此鉴于备份脚本每天运行,我只能在 SVN 中存储 5 天的备份。
无论如何,我计划通过以下方式改善这种情况:
更改备份脚本,以便将 .zip 的大小与 SVN 中的最新 .zip 的大小进行比较,并且仅在它们不同时才提交。如果自上次运行备份以来没有用户上传文件,则两者大小相同
从 SVN 中删除所有旧版本的 .zip 文件以释放一些配额。但是,我不知道这是否真的可能?我的理解是,即使我从工作副本中删除文件并提交删除,文件也会从存储库的 HEAD 中删除,但所有之前提交的版本仍然存在(用完我宝贵的配额)。
有什么方法可以永久删除所有旧版本的 .zip,并使用上述更有效的备份策略重新开始。