Svn 将Subversion存储库移动到另一台服务器

Svn 将Subversion存储库移动到另一台服务器,svn,backup,restore,Svn,Backup,Restore,我有一个托管Subversion代码库的服务器。该服务器当前是一个框,我的IT管理员希望将其更新为 这意味着我需要在服务器构建时移动Subversion存储库,并且想知道将存储库移动到新服务器的最佳实践是什么 看起来,在网上,推荐的方法是: svnadmin dump /path/to/repository > repository-name.dmp svnadmin hotcopy path/to/your_current_directory /path/to/your_destina

我有一个托管Subversion代码库的服务器。该服务器当前是一个框,我的IT管理员希望将其更新为

这意味着我需要在服务器构建时移动Subversion存储库,并且想知道将存储库移动到新服务器的最佳实践是什么

看起来,在网上,推荐的方法是:

svnadmin dump /path/to/repository > repository-name.dmp
svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory
然后使用:

svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp
svnadmin创建存储库名称
svnadmin加载存储库名称
导入存储库


上面的方法似乎是最好的方法吗?

如果您使用的是文件系统类型的存储库,您可以直接获取包含存储库的文件夹并将其移动。如果您正在更改服务器,则可能需要使用“重新定位”命令更改本地工作目录查找存储库的位置。

是的,转储和加载存储库是一种方法。如果且仅当您确定在复制过程中没有人会访问存储库时(或者您可以对存储库进行“热拷贝”,这样可以安全地处理这些情况),则直接复制存储库文件夹是一种可行的选择


您还需要重新签出所有工作副本,或者使用svn switch命令,该命令仅重写URL。更方便的方法是使用OrtoiseSVN的重新定位命令,这可以减少重新定位过程中出错的风险。

我的恢复脚本如下所示:

svnadmin create repository-name --fs-type fsfs
svnadmin load   repository-name --force-uuid < repository-name.dmp
svnadmin创建存储库名称--fs类型fsfs
svnadmin加载存储库名称--强制uuid
第一行确保存储库使用
FSFS
后端(这是许多来源推荐的,包括这一条:,并且AFAIK较新版本的Subversion将其作为默认使用)。是Subversion文件系统实现的名称

第二行保留存储库的UUID,以便于转换(如果没有
--force UUID
开关,工作副本重新定位将失败)

一些链接:

您还可以使用移动存储库;这样,您就可以传输所有数据,而无需关闭“旧”存储库。这也是我所知道的从托管环境获取数据的唯一方法,在托管环境中,您没有shell访问权或转储存储库的访问权。

另一种选择:

使用svnrdump。


“您将需要一个名为svnrdump的工具。正如Apache所述,“svnrdump复制了svnadmin dump和svnadmin load的功能,但可用于远程存储库,而不需要管理员(本地文件系统)访问源或目标存储库。”

最简单的方法是使用:

svnadmin dump /path/to/repository > repository-name.dmp
svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory

我就是这么做的……这是“推荐的方法”,那么为什么你怀疑这是一个好方法呢?什么是“最好的方法”“是说,不管怎样?你是在找一个较短的版本吗?谢谢,事实上,它应该适合重新定位,因为它移动到的服务器将与它当前所在的服务器IP相同。谢谢,我在使用direct copy时遇到了一些困难,因为我没有正确设置SVNServe根目录,但一旦我这么做了,看起来直接复制效果很好。谢谢