svnkit:获取条目名称时出现问题

时间:2010-04-07 20:28:04

标签: svnkit

我正在尝试创建一个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)

2 个答案:

答案 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());