我有一台托管我的 Subversion 代码库的服务器。该服务器当前是 Windows Server 2003 框,我的 IT 管理员想要将其更新为 Windows Server 2008.

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

网上查了一下,似乎推荐的方法是使用:

svnadmin dump /path/to/repository > repository-name.dmp

然后使用:

svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp

导入存储库。

上述方法看起来是最好的方法吗?

有帮助吗?

解决方案

是,倾销和加载库是很长的路要走。直接复制存储库文件夹是,如果一个可行的选择,且仅当,你一定没有人会访问该存储库,而在复制过程正在进行中(或者你可以做仓库的“热拷贝”,它可以处理这些案件以安全的方式)。

您还需要要么重新结帐你所有的工作拷贝,或使用 SVN开关命令,这只是重写网址。更方便的方法是使用TortoiseSVN的移居命令,这降低了在重定位过程犯错误的危险。

其他提示

我的恢复脚本是这样的:

svnadmin create repository-name --fs-type fsfs
svnadmin load   repository-name --force-uuid < repository-name.dmp

第一行确保存储库使用 FSFS 后端(许多来源推荐,包括这个: FSFS 为何更好, ,据我所知,较新版本的 Subversion 使用它作为默认值)。 FSFS 是 Subversion 文件系统实现的名称。

第二行保留存储库的 UUID,以便更轻松地转换(无需 --force-uuid 切换,工作副本重定位将会失败)。

一些链接:

您也可以使用 svnsync的移动库;这样你可以将所有的数据,而不需要采取“老”仓库了。这也是我所知道的唯一方法托管环境,在那里你没有shell访问或访问倾销库让您的数据。

另一种替代方法:

使用svnrdump。 http://www.crowbarsolutions.com/backing-up-恢复-A-远程 - svn的存储库/

“你会需要一个名为svnrdump AA的工具。如Apache的描述,“svnrdump复制svnadmin的dump和svnadmin的负载的功能,但工程的需要,而不是向源管理(本地文件系统)的访问远程仓库,或目标库“。

如果您正在使用的文件系统类型库,你可以从字面上采取包含存储库的文件夹,移动它。如果要更改服务器,那么很可能你需要改变你的本地工作目录使用“移居”命令查找资源库中的位置。

,最简单的方法是使用:

svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top