繁体   English   中英

SVN外部迁移

[英]SVN Externals migration

我有一个SVN回购与几十个外部。 所有外部都是参考“old_svr”定义的。 将repo移动到新服务器“new_svr”,并且必须更改所有外部引用以引用“new_svr”而不是“old_svr”。

这样做:1)我检查了新服务器的repo,这意味着所有的外部仍然指向“old_svr”2)我在顶部目录中为我的工作副本cd并运行

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

此时我遇到了很多错误:A)svn:warning:修订版123中的URL'svn:// new_svr / path / tag /目录'不存在B)仍旧引用旧服务器svn:warning:未知主机名'old_svr'

问题: - 如何有效地删除所有引用到old_svr,以便它不再出现。 - 我不知道为什么对于某些外部目录(大多数都经过精细处理)svn找不到合适的版本来更新。

YorgZ

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

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

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

  • svn ps语法对于externals是错误的(因此你不能在一个命令中使用propset)
  • (可能是小错误) svn pg > file每个定义后带空行的svn pg > file写入文件, -F for ps需要“每行定义”并且只接受#作为注释行
  • BIG FLAW - 您没有仔细阅读命令说明并忽略错误输出

简而言之:

你的svn ps什么都不做(或者你有另一个ps

>svn ps svn:externals -F z:\externals.new
svn: E205001: Try 'svn help propset' for more information
svn: E205001: Explicit target argument required

更长:

必须为每个定义使用一个(正确的)propset(当前形式,当外部散布在repo上时)

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

Data - file:///Z:/Repo1/trunk/Collection Collection

(在分散的模型中)

. - file:///Z:/Repo1/trunk/Collection Data/Collection

(在集中/在干线根/模型中)

具有相同的最终结果(在repo-tree的同一节点上具有相同的外部结构)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM