SVN信息与外部不一致的行为

SVN信息与外部不一致的行为,svn,svn-externals,Svn,Svn Externals,由于SVN存储库中的结构复杂,无法从存储库中正确检索某些外部文件。由于更改存储库结构不是一个选项,因此我开发了一个脚本,可以迭代外部并在需要时“手动”检索它们(多亏了“svn导出”)。为了检测是否确实需要此操作,我执行“svn info”,假设如果文件不存在或未进行版本控制,它将返回不同于0的结果。这确实是在host1(SVN客户端1.6.17)中获得的行为: #最初,目录为空 一元一角 host1$svn更新 正在将外部项提取到“main.rbf” svn:警告:“” 与存储库不同 '' 第1

由于SVN存储库中的结构复杂,无法从存储库中正确检索某些外部文件。由于更改存储库结构不是一个选项,因此我开发了一个脚本,可以迭代外部并在需要时“手动”检索它们(多亏了“svn导出”)。为了检测是否确实需要此操作,我执行“svn info”,假设如果文件不存在或未进行版本控制,它将返回不同于0的结果。这确实是在host1(SVN客户端1.6.17)中获得的行为:

#最初,目录为空
一元一角
host1$svn更新
正在将外部项提取到“main.rbf”
svn:警告:“”
与存储库不同
''
第18413次修订。
#虽然我们进行了更新,但外部项未被提取,
#因为它是来自不同存储库的单个文件
#(已知问题)
一元一角
#该文件不存在,SVN info将相应地执行操作
host1$svn info main.rbf
main.rbf:(不是版本化资源)
svn:出现问题;有关详细信息,请参阅其他错误
#如果我们强制SVN导出
host1$svn export main.rbf
一个主要的.rbf
导出完成。
一元一角
main.rbf
#然后SVN info检测到它并相应地采取行动
host1$svn info main.rbf
main.rbf:(不是版本化资源)
svn:出现问题;有关详细信息,请参阅其他错误
旅社1$
在host2(SVN客户端1.6.11)中,“SVN info”的行为完全不同:无论文件是否存在(来自以前的导出),答案都是:

# Directory is empty
host2$ ls
host2$ svn info main.rbf
Path: .
URL: <REMOTE_LOCATION>
Repository Root: ...
Repository UUID: ...
Revision: 18413
Node Kind: directory
Schedule: normal
Last Changed Author: ...
Last Changed Rev: 18326
Last Changed Date: ...

host2$ 
#目录为空
二元一角
host2$svn info main.rbf
路径:。
网址:
存储库根:。。。
存储库UUID:。。。
修订:18413
节点类型:目录
时间表:正常
上次更改的作者:。。。
最后更改版本:18326
上次更改日期:。。。
2美元

有什么理由解释这种不一致的行为吗?如何在host2中检测此未版本文件?

svn info
svn info FILENAME
执行不同的操作


第二个表单可以获取未版本文件的信息,第一个表单可以获取WC中当前目录的信息。如果您看到这个示例,您会注意到我总是使用第二种形式。@Marda-第二种形式永远不会适用于未版本资源,我看到的
host2$svn info
正是我所期望的,这是我在脚本中使用的信息,也是我在host1中得到的行为。为什么在host2中我会有不同的行为?(我已经更正了发布的代码)好吧,1.6.11的行为肯定是错误的,为什么不更新这个古老的版本?为什么你不想修复损坏的外部?这不是在我的手中完成的…你可以在不更改repo树的情况下完成:
svn:external
parent dir*文件到*TARGET-repo中的某个路径,修改文件外部以使用来自同一repo的文件
# Directory is empty
host2$ ls
host2$ svn info main.rbf
Path: .
URL: <REMOTE_LOCATION>
Repository Root: ...
Repository UUID: ...
Revision: 18413
Node Kind: directory
Schedule: normal
Last Changed Author: ...
Last Changed Rev: 18326
Last Changed Date: ...

host2$