1

我正在尝试创建一个 SVN Eclipese EFS 插件,但在获取条目名称时遇到问题。

当我打电话给:SVNRepository

`//将目录的内容获取到提供的集合对象中并返回目录条目本身。

SVNDirEntry getDir(String path, long revision, boolean includeCommitMessages, Collection entries)`

它正确返回所提供路径的条目,但是,它没有在“返回”条目上设置“名称”值。注意,集合中返回的项目都是可以的。

有人知道为什么是这样吗?和/或是否有解决方法?

请参阅: 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)

4

2 回答 2

2

它正确返回所提供路径的条目,但是,它没有在“返回”条目上设置“名称”值。注意,集合中返回的项目都是可以的。

将其视为“ls”命令以列出目录中的条目。目录本身将表示为“.”。或者更好地说,条目的名称是相对于目录的,而对于目录本身,它是一个空字符串。

有人知道为什么是这样吗?和/或是否有解决方法?

使用 dirEntry.getURL() 然后您可以从 URL 的路径计算名称。此外,目录名称是“路径”参数的一部分或 SVNRepository 对象位置 URL 的一部分。

于 2010-04-13T13:27:41.190 回答
1

我已经检查过SVNDirEntry,该方法返回的getDir()name 属性始终设置为空字符串。

但是,当该方法用于获取目录列表时,每个目录条目都会正确分配其名称。

我认为这种行为有些错误,尽管您仍然可以SVNDirEntry通过它的 URL 找到它的名称:

SVNDirEntry dirEntry = repository.getDir("branches/1.0", -1, false, null);
String name = SVNPathUtil.tail(dirEntry.getURL().getPath());
于 2010-04-13T03:15:55.927 回答