1
我正在使用SVNkit api下载项目的svn版本历史并将其存储在数据库中。我想知道日志条目的更改路径是文件还是文件夹。 SVNkit有SVNNodeKind类,可以用来找到它。但在我的情况下,它总是返回“未知”。我读过的地方可能是因为svn服务器可能没有存储这些信息。确定SVN节点类型
此外,更改的路径不包含目录的尾部斜线。有没有其他的方法来找出它的文件夹或文件。
abstract SVNNodeKind checkPath(java.lang.String path, long revision)
Returns the kind of an item located at the specified path in a particular revision.
即最新版本:
...
SVNNodeKind nodeKind = repository.checkPath(svnUrlToCheck , -1);
if (nodeKind == SVNNodeKind.NONE) {
System.err.println("There is no entry at '" + url + "'.");
} else if (nodeKind == SVNNodeKind.FILE) {
System.out.println("Entry at '" + url + "' is file.");
} else if (nodeKind == SVNNodeKind.DIR) {
System.out.println("Entry at '" + url + "' is directory.");
} else if (nodeKind == SVNNodeKind.UNKNOWN) {
System.out.println("Entry at '" + url + "' is unknown!");
}
最后如果是的情况下
是因为我改变了路径(SVNLogEntryPath)我使用了SVNLogEntryPath.getKind(),它返回SVNNodeKind。但是SVNNodeKind中的值是“未知”。 – user1239080 2013-03-22 20:59:37
其实我用SVNRepository.checkPath()再试一次,它确实返回正确的节点种类。谢谢! – user1239080 2013-03-22 21:11:12
@ user1239080很高兴它有所帮助,你可以upvote和/或接受答案 – pmod 2013-03-22 22:37:45