如何在两个日期之间获取SVNKit日志?

abb*_*tmw 2 java svnkit

我正在使用SVNKit 1.7,我想获得两个日期之间条目的历史记录.我找到的所有文档仅显示检索两个修订号之间的条目.

我基本上想要运行以下命令

svn log -v --xml --non-interactive --no-auth-cache http://foo.com  --username myusername --password mypassword -r {""2012-10-02""}:{""2012-11-01""}
Run Code Online (Sandbox Code Playgroud)

现在我正在通过命令行执行此操作,使用Runtime类在Java中调用它.

我使用此信息的目的是按月生成SVN活动的指标.

如果我必须使用修订号,有没有办法根据日期找到最近的修订版#?

谢谢你的帮助.

abb*_*tmw 6

谢谢Dmitry你的回答非常有帮助,但我最终使用了org.tmatesoft.svn.core.io.SVNRepository类和该类的getDatedRevision()方法.在查看文档时,我多次浏览了这个方法.


Dmi*_*nko 5

    final SvnOperationFactory svnOperationFactory = new SvnOperationFactory();
    try {
        final SVNURL url = ...;

        svnOperationFactory.setAuthenticationManager(new BasicAuthenticationManager("myusername", "mypassword"));

        final SvnLog log = svnOperationFactory.createLog();
        log.addRange(SvnRevisionRange.create(SVNRevision.create(date1), SVNRevision.create(date2)));
        log.setDiscoverChangedPaths(true);
        log.setSingleTarget(SvnTarget.fromURL(url));
        log.setReceiver(new ISvnObjectReceiver<SVNLogEntry>() {
            @Override
            public void receive(SvnTarget target, SVNLogEntry logEntry) throws SVNException {
                ...
            }
        });
        log.run();
    } finally {
        svnOperationFactory.dispose();
    }
Run Code Online (Sandbox Code Playgroud)