Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将SVN存储库移动到新服务器_Svn_Tortoisesvn - Fatal编程技术网

如何将SVN存储库移动到新服务器

如何将SVN存储库移动到新服务器,svn,tortoisesvn,Svn,Tortoisesvn,我们希望将两台服务器合并在一起,为了做到这一点,我们需要在“新”服务器上安装SVN,然后移动在“旧”服务器上设置的所有存储库 这是一个简单的操作吗?是否可能使用OrtoiseSVN提供的“重新定位”选项?最好的方法是什么 这是否也是重新组织存储库设置方式的好时机 这是一个好时机吗 重新组织回购协议的设立方式 嗯 这样做的最佳时机,因为在将存储库迁移到新服务器时,您无论如何都必须关闭存储库。您可以使用svnadmin dump功能迁移存储库。在SVN服务器上,键入svnadmin dump/abs

我们希望将两台服务器合并在一起,为了做到这一点,我们需要在“新”服务器上安装SVN,然后移动在“旧”服务器上设置的所有存储库

这是一个简单的操作吗?是否可能使用OrtoiseSVN提供的“重新定位”选项?最好的方法是什么

这是否也是重新组织存储库设置方式的好时机

这是一个好时机吗 重新组织回购协议的设立方式 嗯


这样做的最佳时机,因为在将存储库迁移到新服务器时,您无论如何都必须关闭存储库。

您可以使用
svnadmin dump
功能迁移存储库。在SVN服务器上,键入
svnadmin dump/absolute/path/to/the/repo>/tmp/repo.svndump
。这将把整个存储库导出到系统临时目录中的文本文件中,并将其命名为“repo.svndump”。您可能希望在将文件传输到新服务器之前压缩该文件

导出repo后,您可以将转储文件传输到新服务器并按如下方式导入:
svnadmin load/absolute/path/to/the/**new**/repo

有关详细信息,请参阅“”和“”

转储存储库并将其加载到新服务器后,您可以使用
--relocate
命令将本地副本切换到新服务器


注意:如果您的存储库使用任何
externals
,那么您将遇到一些问题。有关此问题的详细信息,请参阅服务器故障。

如果新服务器使用相同的操作系统,您只需将整个存储库文件夹复制到新服务器即可。不需要卸载和重新加载它

“重新定位”命令允许您将工作副本指向新服务器,也就是说,它不帮助您移动存储库,只会使您免于重新签出

外部可能是个问题,但不一定是。如果外部存储库位于同一服务器上,那么您可能使用相对URL指定了外部存储库。如果新服务器使用相同的结构,那么一切都应该正常工作

如果
svnadmin dump
不是选项,则可以使用bash脚本。它将SVN目录复制到另一个具有竞争或部分修订历史记录的SVN站点。以下是主要的命令行参数。您还可以设置要克隆从中开始复制历史记录的版本

clone-svn2svn.sh <source-svn-url> <destination-svn-url>
clone-svn2svn.sh
要求 Bash和git是脚本工作所必需的。如果您在Windows或其他平台上,请从下载。这是一个包含bash的git安装程序

细节 脚本使用
git SVN
将源SVN历史下载到临时git存储库,并将历史上传到目标SVN repo

缺点
目标回购协议修订中的作者将是运行脚本的用户(您自己)。但是,每个修订消息都会有一行指定原始作者。所以这并不太糟糕。

回购协议目前没有分支/主干/标记结构分支/主干/标记只是subversion世界本身的一种逻辑组织风格。它与回购位置无关,最好在迁移之前或之后进行。如果使用Berkeley数据库后端(以前是默认的),那么您绝对必须执行转储和还原appraoch,因为否则付出的代价是不值得的。我这样做了,但是现在我得到一个错误
svn:E175002:Commit failed(详细信息如下):svn:E175002:PROPFIND of'/Project/Project/src/dashboards/BasicLineGraph.java':500内部服务器错误(http://www.domain.com)
正在尝试解决这个问题。。我重新安装了好几次,没有问题。对大多数人来说,这可能是一个不需要动脑筋的问题,但我必须先创建新的
repo
,然后才能成功加载转储文件。@最好在答案中添加Appulus,IMO,它只用于帮助您的工作副本找到移动的存储库。右键单击菜单选项将仅出现在工作副本根目录中。