将 Ubuntu Linux 上的 SVN 存储库备份到 Windows 共享

将 Ubuntu Linux 上的 SVN 存储库备份到 Windows 共享

我们有一个运行 SVN 存储库的 Ubuntu(无头)系统。想定期自动将其备份到 Windows 共享。我们应该怎么做?有任何链接/文章吗?有什么问题吗?

从这些备份中恢复有多容易?

答案1

$ svnadmin dump /path/to/repo | gzip > backup.gz

$ gunzip -c backup.gz | svnadmin load /path/to/repo

答案2

将其打包,然后用来gvfs-copy复制它,或者将共享安装为 CIFS,复制并卸载。

答案3

进一步回答 Rajat 的问题,如果你的 Ubuntu 系统有空间,我会先做一个热复制,然后转储热复制或将其打包成 tar。

$ svnadmin hotcopy /path/to/repo /path/to/local/backup
$ svnadmin dump /path/to/local/backup | gzip > backup.gz
  or
$ tar czf backup-hotcopy.tgz /path/to/local/backup

因此,

  • 如果 repo 损坏,您有一个本地备份。
  • 备份可以在没有任何中断的情况下完成 - 可以在开发人员提交数据库时完成。(IIRC 该dump命令可能无法在实时存储库上干净地运行 - 但在快速搜索后我找不到关于此问题的权威来源 - 如果我错了,请有人纠正我或指出确认)
  • 本地热复制还将包含您可能已设置的任何挂钩脚本 - 而转储则不会。

但是,tar 打包的热拷贝包含 Linux 格式的存储库。如果您的 Ubuntu 机器坏了,而您想将其恢复到 Windows 机器上,这可能会导致问题。(这曾经困扰过我一次 - 我们需要快速恢复,而 Windows 机器是唯一可用的服务器)。这不是 dump 变体的问题。您需要先在某处创建一个工作存储库 - 但这样做之后,转储就可以加载,而不必关心底层操作系统。

相关内容