2008-12-11 48 views
64

我有一台托管我的Subversion代码库的服务器。该服务器当前是Windows Server 2003框,我的IT管理员希望将其更新为Windows Server 2008将Subversion版本库移到另一台服务器

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

看起来,网上通缉,推荐的方法是使用:

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

然后用:

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

要导入库。

上面的方法看起来是否是最好的方法?

+1

这就是我要做的事 – cciotti 2008-12-11 20:43:29

+3

它的‘推荐的方法’,那么为什么你怀疑这是一个好方法?无论如何,“最佳”意味着什么? – hop 2008-12-12 13:13:43

回答

57

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

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

4

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

27

我的恢复脚本是这样的:

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

第一线,确保仓库使用FSFS后端(这是许多人士建议,包括这个:How FSFS is Better,并颠覆AFAIK新版本使用作为默认)。 FSFS是Subversion文件系统实现的名称。

第二行保留存储库的UUID,以方便过渡(没有--force-uuid开关,工作副本重定位将失败)。

一些链接:

9

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

1

最简单的方法是使用:。

svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory 
相关问题