使用svnkit获取创建日期

使用svnkit获取创建日期,svn,svnkit,Svn,Svnkit,我正在用svnkit和poi为我的公司创建一个文档,这一切似乎进展得相当顺利,直到我踏进文档的“创建日期”部分。 我有一大堆需要展示的房产,到目前为止,我可以通过谷歌找到它们。我已经了解到,通过执行SVNRepository.log并查看第一个SVNLogEntry.getDate,我实际上可以检索任何文件的创建日期,但我的大多数文档都围绕最新的修订数据。看最后的评论,上次修改它的人等等,所以我试着用SVNRepository.getLatestRevision来填充它。 因此,如果没有其他可用

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

下面是一段示例代码,说明我正在做什么:

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;
ArrayList结果返回新的ArrayList();
ArrayList条目=新的ArrayList();
getDir(路径,repository.getLatestRevision(),true,条目);
迭代器迭代器=entries.Iterator();
while(iterator.hasNext()){
SVNDirEntry entry=(SVNDirEntry)迭代器.next();
if(entry.getKind()!=SVNNodeKind.DIR){
ArrayList aux=新的ArrayList();
repository.getFileRevisions(path+(path.equals(“”?):“/”)+entry.getName(),temp,1,
getLatestRevision());
用于(SVNFilerRevision版本:aux){
//所以我们知道rev包含日期作者和日志
//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”);
//我们添加路径和名称
rev.getRevisionProperties().put(“路径”,路径);
rev.getRevisionProperties().put(“name”,entry.getName());
//插入创建日期
// ? ? ?
结果返回。添加(修订版);
}
}
}
返回结果返回;

提前感谢您的帮助。

SVNProperty.COMMITTED\u每个文件和目录的日期都指向创建日期

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

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);

或者(甚至更好)您可以使用SVN回复信息电话。它返回具有getDate()方法的SVNDirEntry实例。

SVNProperty.COMMITTED\u每个文件和目录的日期指向创建日期

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

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);
或者(甚至更好)您可以使用SVN回复信息电话。它返回具有getDate()方法的SVNDirEntry实例