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

时间:2012-10-12 19:44:25

标签: 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""}

现在我通过命令行在运行时使用Java调用它。

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

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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();
    }