Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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 - Fatal编程技术网

SVN外部迁移

SVN外部迁移,svn,Svn,我有一份SVN回购协议,有几十份外部文件。所有外部都是参照“old_svr”定义的。repo被移动到新服务器“new_svr”,所有外部引用必须更改为“new_svr”,而不是“old_svr” 这样做: 1) 我从新服务器上按原样签出了repo,这意味着所有外部仍然指向“old_svr” 2) 我将cd放在最上面的目录中作为我的工作副本,然后运行 svn propget-R svn:外部属性>old_externals.tmp 3) 我在old_externals.tmp文件中将“old_sv

我有一份SVN回购协议,有几十份外部文件。所有外部都是参照“old_svr”定义的。repo被移动到新服务器“new_svr”,所有外部引用必须更改为“new_svr”,而不是“old_svr”

这样做: 1) 我从新服务器上按原样签出了repo,这意味着所有外部仍然指向“old_svr” 2) 我将cd放在最上面的目录中作为我的工作副本,然后运行

svn propget-R svn:外部属性>old_externals.tmp 3) 我在old_externals.tmp文件中将“old_svr”更改为“new_svr” sed's/old_svr/new_svr/g'old_externals.tmp>new_externals.tmp 4) 我将新的外部定义应用于我的工作副本 propset svn:externals-F new_externals.tmp 5) 提交更改 svn提交 6) 更新工作副本 svn更新

在这一点上,我得到了很多错误: A) svn:警告:URL'svn://new_svr/path/tag/directory“第123版不存在 B) 仍然存在对旧服务器的引用 svn:警告:未知主机名“old_svr”

问题: -如何有效地删除旧的_svr的所有引用,使其不再出现。 -我不知道为什么svn找不到一个合适的版本来更新一些外部目录(大多数都很好)


你应该检查一下你的环境。使用最新的Subversion服务器和客户端

从多年前(2008年)发布的Subversion 1.5开始,建议在
svn:externals
中使用存储库相对URL。在这种情况下使用它们会有所帮助,因为存储库的URL可以更改,并且不需要修改。查看有关回购相关URL的更多信息。

您(乍一看)至少有两个错误和一个方法缺陷:

  • svnps
    的语法对于externals是错误的(因此您不能在一个命令中设置所有属性)
  • (可能有小错误)
    svn pg>文件
    在每个定义后用空行写入文件,
    -F
    对于ps要求“每行定义”,并且只接受#作为注释行
  • 大缺陷-您没有仔细阅读命令说明,忽略了错误输出
简言之: 你的
svnps
什么都不做(或者你有另一个
ps
?!)

比较长的: 您必须为每个定义使用一个(正确的)propset(当前形式,当外部信息分散在回购协议中时)

如果您以前重构了它们的定义(无论如何,这是一个很好的时机),并在一个存储库节点中收集所有定义(本地路径必须在此过程中更改),那么您可以使用一个(正确的)propset进行所有定义:对于本地文件夹/数据/收集(链接到外部),它的定义可以是

Data - file:///Z:/Repo1/trunk/Collection Collection
(在分散模型中)

(集中/树干根部/模型)


最终结果相同(回购树的同一节点上有相同的外部数据)

对不起,您错过了这里。如果外部指向另一个主机(该主机在时间上发生了变化),则相对URL不能help@LazyBadger是的,你是对的。在这种情况下,OP必须重新配置所有外部。我试图重新配置我工作副本上的所有外部,然后提交和更新,但没有成功。SVN正在尝试从特定版本中提取外部,但找不到它们。我找不到一种方法,可以让最初创建外部的人修改原始回购。@YorgZ:“t不起作用”不是问题的好答案或描述。它怎么不起作用?显示完整日志!!!我们不敏感,顺便说一句,“它为我工作”感谢你的回答懒惰的獾,这一切都是有意义的,事实上,我试图一次设置外部所有目录,而不是一个目录一个目录。我现在得到以下错误后>svn更新。我不知道为什么一些外部通行证和其他失败。如果我使用的新主机出现故障,我希望所有外部都会出错,而不仅仅是一些。我不理解对版本号的引用,为什么svn需要一个特定的版本。svn:警告:处理“设置”的外部定义时出错:svn:警告:URL'svn://new-svr/main-trunk/branches/PROJECT2/Settings'在版本290中,在版本569中不存在。您需要删除外部版本的WC副本,然后在父版本上执行svn更新,以收集新的重新定位版本。
Data - file:///Z:/Repo1/trunk/Collection Collection
. - file:///Z:/Repo1/trunk/Collection Data/Collection