在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();
}
但它会给我只有第一次修订,我应该如何迭代打印特定日期范围的日志?
这是因为
log.run();
始终只返回一个日志条目(这同样适用于其他SvnOperation#运行方法一样)。要获得所有条目使用接收器:
log.setReceiver(new ISvnObjectReceiver<SVNLogEntry>() {
@Override
public void receive(SvnTarget target, SVNLogEntry logEntry) throws SVNException {
//process logEntry here
}
});
log.run();
我有一些问题通过日期范围....我想'SVNRevision.create(Date new Date(2013-01-01))' –
你是什么意思的“有些问题” ? –
错误...通过使用日历修复了它。使用了错误的日期格式。 –
log.getRevisionRanges();没有目的;) – Olivier