繁体   English   中英

JGit中的文件提交日期

[英]File commit date in JGit

是否可以使用JGit解析首次提交某个文件的日期和时间?

相当于Git的将列出第一次提交,例如:

git log --format=%aD <FILE> | tail -1

RevWalk可以按如下方式使用,以获取包含“ file.txt”的第一个提交

RevWalk revWalk = new RevWalk( repository );
revWalk.markStart( revWalk.parseCommit( repository.resolve( Constants.HEAD ) ) );
revWalk.setTreeFilter( PathFilter.create( "path/to/file.txt" ) );
revWalk.sort( RevSort.COMMIT_TIME_DESC );
revWalk.sort( RevSort.REVERSE, true );
RevCommit commit = revWalk.next();
...
revWalk.dispose();

在示例中,历史记录始于HEAD 调整markStart()从其他位置调用起点,或多次调用markStart()以包括多个起点。

PathFilter排除不包含给定存储库相对路径名的提交。 最后,这两个sort()调用要注意,提交按其时间戳记(最新的顺序)以相反的顺序进行排序。 因此,包含给定文件的最早提交将由next()返回。

请注意,传递给markStart()的提交必须来自同一修订版修订程序,即必须通过从同一revWalk实例调用parseCommit()来获得。 另请参见此线程以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM