2012-06-14 84 views
0

我敢肯定,這個問題將在多個層面上是愚蠢或討厭....使用SVNKit的SVN日誌

我在Java中使用SVNKit。

我想獲得在特定提交中提交的文件列表。我有發行版ID。通常我會運行類似

SVN的日誌網址/到/庫-qv -r12345

而且我會得到命令的列表正常。

我不知道如何在SVNKit中做類似的事情。有小費嗎? :)

回答

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()調用。