我正在尝试创建一个SVN Eclipese EFS插件,并在获取条目名称时遇到问题。
当我打电话给: SVNRepository
`//将目录的内容提取到提供的集合对象中,并返回目录条目本身。
SVNDirEntry getDir(String path,long revision,boolean includeCommitMessages,Collection entries)`
它正确返回所提供路径的条目,但是,它不会在“返回”条目上设置“name”值。请注意,集合中返回的项目都可以。
有谁知道这是为什么?和/或是否有解决方法?
请参阅: http://svnkit.com/javadoc/org/tmatesoft/svn/core/io/SVNRepository.html http://svnkit.com/javadoc/org/tmatesoft/svn/core/io/SVNRepository.html#getDir(java.lang.String,long,boolean,java.util.Collection)
答案 0 :(得分:2)
它正确地返回所提供路径的条目,但是,它 不会在“返回”条目上设置“名称”值。注意,项目 在集合中返回都没问题。
将其视为“ls”命令,列出目录中的条目。目录本身将表示为“。”。或者更好地说,条目的名称是相对于目录的,对于目录本身来说,它是一个空字符串。
有谁知道这是为什么?和/或是否有解决方法?
使用dirEntry.getURL(),然后您可以从URL的路径计算名称。此外,目录名称可以是“path”参数的一部分,也可以是SVNRepository对象位置URL的一部分。
答案 1 :(得分:1)
我已经检查过,SVNDirEntry
方法返回的getDir()
的name属性设置为空字符串。
但是,当使用该方法获取目录列表时,每个目录条目的名称都已正确分配。
我认为虽然您仍然可以通过其网址找到SVNDirEntry
的名称,但这种行为有点错误:
SVNDirEntry dirEntry = repository.getDir("branches/1.0", -1, false, null);
String name = SVNPathUtil.tail(dirEntry.getURL().getPath());