【问题标题】:permanently remove revisions from SVN从 SVN 永久删除修订
【发布时间】:2012-05-31 23:13:33
【问题描述】:

序言

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

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

最后...问题

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

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

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

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

有什么方法可以永久删除所有旧版本的 .zip,然后使用上述更有效的备份策略重新开始。

【问题讨论】:

    标签: svn backup backup-strategies


    【解决方案1】:

    你应该做以下事情来解决这个问题:

    • 如果有可能,请从存储库中删除所有提交的 zip 文件。参见SVN红皮书Filtering Repository History章节。
    • 以后,请将您的 zip 文件保存在其他位置。向 SVN 存储库添加大型二进制文件并不是一个好主意,即使二进制 diff 运行良好。

    如果包含二进制数据,200 MB 并不多。如果它只是源代码,那就足够了。

    【讨论】:

      猜你喜欢
      • 2016-07-09
      • 2012-11-29
      • 2017-01-06
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2011-04-22
      相关资源
      最近更新 更多