从多个文件恢复SVN备份

nic*_*ckf 2 svn

我有一个非常大的(~6GB)SVN存储库,为此我编写了一个批处理文件脚本来每天进行增量备份.该脚本检查上次备份的运行时间,并仅转储此后的修订.

这些文件命名为:backup-{lower_revision}-{higher_revision}.svn例如:backup-156-162.svn,backup-163-170.svn.

这意味着我有很多小的转储文件,我猜这很好(比很多6GB转储文件好),但是我有点担心从这些备份恢复应该做多少工作呢?我需要.

为了减少文件总数,我已经开始在每个月的第一天进行完全转储,但是,如果我需要在30日恢复,那将是30个转储文件可能需要一段时间.

我一直在考虑的是:

  • 手册:
    svnadmin load c:\myRepo < backup-1-10.svn
    等待
    svnadmin load c:\myRepo < backup-11-24.svn
    等待
    等..
  • 批处理文件使上述过程不那么繁琐
  • 将每个文件附加在一起并进行一次加载(如果可能的话?)

如果我需要恢复,那么使用这些文件的最佳方法是什么?

ps:操作系统是Windows

Pet*_*ker 5

您应该通过编号日期[01,02,... 31]来重命名文件,以便轻松地对文件进行排序对于转储,了解哪些修订版本并不重要.

我遵循一种不同的方法,因为加载一个巨大的回购这样需要一些时间,所以你应该考虑以下内容:
你可以使用svnadmin hotcopy每周/每月热备份一次存储库.每天你都应该进行增量转储以获取最新版本,以便检索最新的版本,你只需要调用
svnlook最年轻的[live_repo] - >为你提供最新版本的实时存储库

svnlook最年轻[copied_repo] - >为您提供每周hotcopy备份的最新修订版

现在,您可以使用两个修订号从您的live-repo运行转储.
好处:

  • 让备份的存储库重新启动并再次运行要快得多(转储需要几个小时!)
  • 减少转储文件
  • 减少脚本工作量
  • 可以通过post-commit-hook扩展到"per-commit"-backups,这样你就会失去任何修改