SVN日志使用SVNKit

时间:2012-06-14 09:10:09

标签: java svnkit

我确信这个问题在多个级别上会很愚蠢或烦人....

我在Java中使用SVNKit。

我想获取特定提交中提交的文件列表。我有发行版ID。通常我会运行类似

的东西

svn log url / to / repository -qv -r12345

我会正常获取命令列表。

我无法解释如何在SVNKit中做类似的事情。有小费吗? :)

1 个答案:

答案 0 :(得分:2)

final SvnOperationFactory svnOperationFactory = new SvnOperationFactory();
final SvnLog log = svnOperationFactory.createLog();
log.setSingleTarget(SvnTarget.fromURL(url));
log.addRange(SvnRevisionRange.create(SVNRevision.create(12345), SVNRevision.create(12345)));
log.setDiscoverChangedPaths(true);
final SVNLogEntry logEntry = log.run();

final Map<String,SVNLogEntryPath> changedPaths = logEntry.getChangedPaths();
for (Map.Entry<String, SVNLogEntryPath> entry : changedPaths.entrySet()) {
    final SVNLogEntryPath svnLogEntryPath = entry.getValue();
    System.out.println(svnLogEntryPath.getType() + " " + svnLogEntryPath.getPath() +
            (svnLogEntryPath.getCopyPath() == null ?
                    "" : (" from " + svnLogEntryPath.getCopyPath() + ":" + svnLogEntryPath.getCopyRevision())));
}

如果要为修订范围运行一个日志请求,则应使用log.setReceiver()调用您的接收器实现。