0

この質問は、複数のレベルでばかげているか迷惑になると確信しています....

JavaでSVNKitを使用しています。

特定のコミットでコミットされたファイルのリストを取得したい。リリースIDを持っています。通常、私は次のようなものを実行します

svn log url/to/repository -qv -r12345

そして、通常どおりコマンドのリストを取得します。

SVNKit で同様のことを行う方法がわかりません。任意のヒント?:)

4

1 に答える 1

2
final SvnOperationFactory svnOperationFactory = new SvnOperationFactory();
final SvnLog log = svnOperationFactory.createLog();
log.setSingleTarget(SvnTarget.fromURL(url));
log.addRange(SvnRevisionRange.create(SVNRevision.create(12345), SVNRevision.create(12345)));
log.setDiscoverChangedPaths(true);
final SVNLogEntry logEntry = log.run();

final Map<String,SVNLogEntryPath> changedPaths = logEntry.getChangedPaths();
for (Map.Entry<String, SVNLogEntryPath> entry : changedPaths.entrySet()) {
    final SVNLogEntryPath svnLogEntryPath = entry.getValue();
    System.out.println(svnLogEntryPath.getType() + " " + svnLogEntryPath.getPath() +
            (svnLogEntryPath.getCopyPath() == null ?
                    "" : (" from " + svnLogEntryPath.getCopyPath() + ":" + svnLogEntryPath.getCopyRevision())));
}

リビジョン範囲に対して1つのログ要求を実行する場合は、レシーバーの実装でlog.setReceiver()呼び出しを使用する必要があります。

于 2012-06-14T22:51:05.037 に答える