Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从SVN中永久删除修订 序言_Svn_Backup_Backup Strategies - Fatal编程技术网

从SVN中永久删除修订 序言

从SVN中永久删除修订 序言,svn,backup,backup-strategies,Svn,Backup,Backup Strategies,我的SVN主机由第三方提供,这将我的使用限制为300MB。由于该项目规模不大,我从未想过这会成为一个问题。一旦应用程序投入生产,我意识到我需要某种备份机制。因此,我编写了一个shell脚本,用于导出数据库并压缩用户上传的文件。然后我将.sql和.zip文件提交给SVN(SVN服务器与应用程序不在同一台机器上运行) 然后今天我注意到我已经超过了限额。我很快意识到这一定是因为备份 最后……问题 因为.zip是一个二进制文件,我想每次提交时整个文件都会添加到存储库中(而对于文本文件,只添加了diff)

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

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

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

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

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

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


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

您应该执行以下操作来解决此问题:

  • 如果有可能,请从存储库中删除所有提交的zip文件。参见SVN红皮书中的章节
  • 以后,将zip文件保存到其他位置。将大型二进制文件添加到SVN repo中不是一个好主意,即使二进制文件的差异工作得很好
如果包含二进制数据,200 MB并不多。如果只是源代码,就足够了