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

Svn 您能否在不直接访问服务器的情况下备份/创建subversion存储库的转储?,svn,backup,Svn,Backup,我将托管的subversion服务用于许多个人和工作开发项目。虽然他们像任何托管公司一样保留备份,但我也希望能够创建自己的本地备份,以防万一。这项服务允许您请求和下载备份,但他们需要付费。我是否可以通过HTTPS作为客户端连接到托管存储库来生成该存储库的备份/转储?理论上是“否”,因为转储只能通过svnadmin命令执行。然而,有一个非常简单的解决方案可以避免这种情况 有两种方法,一种是简单的,另一种是困难的。简单的是一个名为rsvndump(remotesvndump)的实用程序,您可以在这里

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

理论上是“否”,因为转储只能通过
svnadmin
命令执行。然而,有一个非常简单的解决方案可以避免这种情况

有两种方法,一种是简单的,另一种是困难的。简单的是一个名为rsvndump(remotesvndump)的实用程序,您可以在这里找到它:

如果简单的一个不适合您(rsvnadmin有写在其上的限制),那么就有复杂的一个:

第二种更难的方法要求您安装一个使用svn构建的分布式版本控制客户端作为扩展客户端。不幸的是,安装过程非常繁琐,这里有一个例子

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

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

svnadmin dump -r2:HEAD ~/.svk/local > repository.dump
就在这里


SVK还具有为windows()预构建的优点。

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


请注意,
svnsync
要求服务器运行SVN 1.4版或更高版本。