簡體   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