您是否可以在不直接访问服务器的情况下备份/创建subversion存储库的转储?

时间:2009-12-31 06:36:46

标签: svn backup

我将托管的subversion服务用于许多个人和工作开发项目。虽然他们像任何托管公司一样保留备份,但我希望能够创建我自己的本地备份以防万一。此服务允许您请求和下载备份,但他们收取费用来执行此操作。无论如何,我可以通过HTTPS连接到客户端来生成托管存储库的备份/转储吗?

2 个答案:

答案 0 :(得分:4)

您可以使用svnsync命令。它基本上会获得源SVN数据库的每个修订版并将它们提交到备份数据库。第一次运行它时可能会很慢,因为它一次只能获得所有更改,但是一旦完成第一次同步,这是一个很好的解决方案。

答案 1 :(得分:1)

理论上“不”,因为转储只能由svnadmin命令执行。然而,有一个非常重要的解决办法来规避这一点。

有两种方式,一种是简单的,一种是硬的。简单的是一个名为rsvndump(远程SVN转储)的实用程序,你可以在这里找到它:http://rsvndump.sourceforge.net/

如果更简单的一个不适合你(rsvnadmin有它的限制,就像在manpage上写的那样),那就是复杂的一个:

第二种更难的方法要求您安装SVK,一个使用svn构建的分布式版本控制客户端,作为扩展客户端。不幸的是,安装过程并非易事,但这里只有guide to help

您现在使用SVK列出远程存储库:

svk ls URL-to-SVN

按照说明操作。瞧,你有一个本地的存储库副本:)。前两个版本与SVK相关,因此要立即执行转储,请运行:

svnadmin dump -r2:HEAD ~/.svk/local > repository.dump

你有它。

SVK还具有为Windows预构建的优势(here's the link)。