【问题标题】:SVN log using SVNKit使用 SVNKit 的 SVN 日志
【发布时间】:2012-06-15 06:51:05
【问题描述】:

我相信这个问题在多个层面上都会很愚蠢或令人讨厌......

我在 Java 中使用 SVNKit。

我想获取在特定提交中提交的文件列表。我有发布ID。通常我会运行类似的东西

svn 日志 url/to/repository -qv -r12345

我会照常获得命令列表。

我不知道如何在 SVNKit 中做类似的事情。有小费吗? :)

【问题讨论】:

    标签: java svnkit


    【解决方案1】:
    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())));
    }
    

    如果您想针对修订范围运行一个日志请求,您应该在接收器实现中使用 log.setReceiver() 调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 2012-03-16
      • 2015-04-02
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      相关资源
      最近更新 更多