2

SVNKit を使用して 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();
    }

ただし、最初のリビジョンのみが表示されます。特定の日付範囲のログを印刷するには、どのように繰り返す必要がありますか?

4

1 に答える 1

2

それの訳は

log.run();

常に 1 つのログ エントリのみを返します (他の SvnOperation#run メソッドについても同様です)。すべてのエントリを取得するには、レシーバーを使用します。

    log.setReceiver(new ISvnObjectReceiver<SVNLogEntry>() {
        @Override
        public void receive(SvnTarget target, SVNLogEntry logEntry) throws SVNException {
            //process logEntry here
        }
    });
    log.run();
于 2013-03-13T09:57:42.727 に答える