[英]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.