[英]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
你至少(乍一看)有两个错误和一个方法缺陷 :
svn ps
语法对于externals是错误的(因此你不能在一个命令中使用propset) svn pg > file
每个定义后带空行的svn pg > file
写入文件, -F
for ps需要“每行定义”并且只接受#作为注释行 你的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.