在Java中获取特定日期范围的SVN日志

问题描述:

我正在尝试使用SVNKit从SVN回购日志中获取日志。在Java中获取特定日期范围的SVN日志

public static void svnLogTest() { 
    final SvnOperationFactory svnOperationFactory = new SvnOperationFactory(); 
    final SvnLog log = svnOperationFactory.createLog(); 
    SVNURL url = null; 
    try { 
     url = SVNURL 
       .parseURIEncoded("https://svn-repo"); 
    } catch (SVNException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    log.setSingleTarget(SvnTarget.fromURL(url)); 
    log.addRange(SvnRevisionRange.create(SVNRevision.create(111), 
      SVNRevision.create(222))); 
    log.getRevisionRanges(); 
    SVNLogEntry logEntry = null; 
    try { 
     logEntry = log.run(); 
     System.out.println(logEntry.getAuthor() + " " + logEntry.getRevision() + " " 
       + logEntry.getDate()); 

    } catch (SVNException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

但它会给我只有第一次修订,我应该如何迭代打印特定日期范围的日志?

+1

log.getRevisionRanges();没有目的;) – Olivier

这是因为

log.run(); 

始终只返回一个日志条目(这同样适用于其他SvnOperation#运行方法一样)。要获得所有条目使用接收器:

log.setReceiver(new ISvnObjectReceiver<SVNLogEntry>() { 
     @Override 
     public void receive(SvnTarget target, SVNLogEntry logEntry) throws SVNException { 
      //process logEntry here 
     } 
    }); 
    log.run(); 
+0

我有一些问题通过日期范围....我想'SVNRevision.create(Date new Date(2013-01-01))' –

+0

你是什么意思的“有些问题” ? –

+0

错误...通过使用日历修复了它。使用了错误的日期格式。 –