使用svnrdump和svnsync进行Subversion(SVN)备份有什么区别?

使用svnrdump和svnsync进行Subversion(SVN)备份有什么区别?,svn,repository,backup,Svn,Repository,Backup,我正试图找出如何备份我的远程Subversion(SVN)存储库,我在不同的地方看到了以下两种方法。它们会在生成的转储文件中产生任何显著差异吗 一,。 使用 二,。 使用 注意,选项1需要一些额外的功能,但这对于这里提出的问题不是必需的。转储文件大致相同。如果使用svnsync,r0上将有一些额外的修订属性,svnsync将使用这些属性跟踪其源存储库 除非你有一个小型回购,否则你可能不会希望每次备份时都对整个回购进行svnrdump。因此,这意味着您必须记录并跟踪备份的修订,并不断生成增量转储。

我正试图找出如何备份我的远程Subversion(SVN)存储库,我在不同的地方看到了以下两种方法。它们会在生成的转储文件中产生任何显著差异吗

一,。 使用

二,。 使用


注意,选项1需要一些额外的功能,但这对于这里提出的问题不是必需的。

转储文件大致相同。如果使用svnsync,r0上将有一些额外的修订属性,svnsync将使用这些属性跟踪其源存储库

除非你有一个小型回购,否则你可能不会希望每次备份时都对整个回购进行svnrdump。因此,这意味着您必须记录并跟踪备份的修订,并不断生成增量转储。另一方面,svnsync不必跟踪修订停止点,它会为您这样做,每次运行sync时,它只会拉下新修订

如果未使用svnrdump进行完全转储(并且仅转储新版本),则任何版本属性更改都不会反映在转储中(例如,修复svn中的拼写错误:登录版本)。svnsync允许通过使用copy revprops子命令来完成此操作

然而,这两种方法都不是完全备份。锁不会反映在转储输出中(如果不使用锁,则可能无关紧要)。您也不会获得钩子脚本和存储库配置文件的副本(尽管通常在创建之后不会对它们进行太多更改)

替代解决方案可能是svnadmin hotcopy(它有自己的锁问题),或者使用svnadmin freeze和某种文件系统快照。如果您可以使用原始版本完全访问服务器,我建议您选择此路线,因为您将拥有更完整的备份。一旦使用其中一种技术复制了repo(或快照),您就可以使用rsync(或任何其他您不能使用的工具)将副本(或快照)复制到远程机器上

svnsync init file:///path/to/local/repo URL_of_remote_repo

svnsync sync file:///path/to/local/repo 

svnadmin dump /path/to/local/repo > repo.dump
svnrdump dump URL_of_remote_repo > repo.dump