首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用svnkit获取创建日期

使用svnkit获取创建日期
EN

Stack Overflow用户
提问于 2012-05-09 22:36:14
回答 1查看 1.5K关注 0票数 1

我正在用svnkit和poi为我的公司创建一个文档,看起来一切都很顺利,直到我在文档的“创建日期”部分进行了修改。我有一堆需要显示的属性,到目前为止我可以通过google找到它。我读到,实际上我可以通过执行SVNRepository.log并查看第一个SVNLogEntry.getDate来检索任何文件的创建日期,但我的大多数文档都围绕着最新的修订数据。对于最后的评论,最后修改它的人等等,所以我试图用SVNRepository.getLatestRevision来填充它。因此,如果没有其他可用的文件,我将不得不做一堆fors,查找每个文件的创建日期,并查找它对应的文件。我想问的是:是否有直接指向文件创建日期的svn属性?

下面是一些示例代码,用来说明我在做什么:

代码语言:javascript
复制
ArrayList<SVNFileRevision> resultReturn new ArrayList<SVNFileRevision>();
ArrayList entries = new ArrayList<SVNDirEntry>();
repository.getDir(path, repository.getLatestRevision(), true, entries);

Iterator iterator = entries.iterator();
while (iterator.hasNext()) {
SVNDirEntry entry = (SVNDirEntry) iterator.next();
if (entry.getKind() != SVNNodeKind.DIR) {


    ArrayList<SVNFileRevision> aux = new ArrayList<SVNFileRevision>();
    repository.getFileRevisions(path + (path.equals("") ? "" : "/") + entry.getName(), temp, 1,
                                repository.getLatestRevision());

    for (SVNFileRevision rev : aux) {

  //So we know that rev contains date author and log        
  //System.out.println(rev.getRevision());
  //System.out.println(rev.getRevisionProperties().getSVNPropertyValue("svn:date"));
  //System.out.println(rev.getRevisionProperties().getSVNPropertyValue("svn:author"));
  //System.out.println(rev.getRevisionProperties().getSVNPropertyValue("svn:log"));

            //we add path and name
            rev.getRevisionProperties().put("path", path);
            rev.getRevisionProperties().put("name", entry.getName());

    //insert creation date
    // ? ? ?

            resultReturn.add(rev);

    }
}
}
return resultReturn;

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-11 06:51:15

每个文件和目录的SVNProperty.COMMITTED_DATE指向创建日期。

您还可以查看SVNProperty.COMMITTED_REVISION和SVNProperty.LAST_AUTHOR (如果您需要某天对文件/目录的最新更改的作者和修订版)。所有这些属性都是由SVN自动为每个文件和目录设置的,每次修订版> 0。

代码语言:javascript
复制
SVNProperties properties = new SVNProperties();
svnRepostory.getFile("path/to/file", -1, properties, null);
final String committedDateString = properties.getStringValue(SVNProperty.COMMITTED_DATE);
SVNDate date = SVNDate.parseDate(committedDateString);

或者(甚至更好)您可以使用SVNRepository#info调用。它返回具有getDate()方法的SVNDirEntry实例。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10518282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档