Java 使用jgit对提交进行拓扑排序
我遇到了一个问题,提交被无序显示。原因并不重要,我只需要检索提交并在变更日志中正确显示它们。 我已经做了一些研究,我能找到的最佳解决方案是使用jGits RevSort.TOPO使用jGit对RevWalk进行拓扑排序。Java 使用jgit对提交进行拓扑排序,java,git,jgit,Java,Git,Jgit,我遇到了一个问题,提交被无序显示。原因并不重要,我只需要检索提交并在变更日志中正确显示它们。 我已经做了一些研究,我能找到的最佳解决方案是使用jGits RevSort.TOPO使用jGit对RevWalk进行拓扑排序。 这是我到目前为止所做的,但它不起作用,提交将像以前一样未排序地返回。其他排序方法工作正常,例如RevSort.REVERSE,但TOPO没有任何效果 RevWalk walk = new RevWalk(repo); ObjectId head = repo.r
这是我到目前为止所做的,但它不起作用,提交将像以前一样未排序地返回。其他排序方法工作正常,例如RevSort.REVERSE,但TOPO没有任何效果
RevWalk walk = new RevWalk(repo);
ObjectId head = repo.resolve("HEAD");
RevCommit recentCommit = walk.parseCommit(head);
walk.sort(RevSort.TOPO);
walk.sort(RevSort.COMMIT_TIME_DESC, true);
walk.markStart(mostRecentCommit);
List<String> messages = new ArrayList<String>();
for (Iterator<RevCommit> iterator = walk.iterator(); iterator.hasNext();) {
RevCommit commit = iterator.next();
messages.add(commit.getFullMessage());
}
RevWalk=newrevwalk(回购);
ObjectId head=回购决议(“head”);
RevCommit-recentCommit=walk.parseCommit(head);
walk.sort(RevSort.TOPO);
walk.sort(RevSort.COMMIT\u TIME\u DESC,true);
walk.markStart(mostRecentCommit);
列表消息=新建ArrayList();
for(Iterator Iterator=walk.Iterator();Iterator.hasNext();){
RevCommit=iterator.next();
messages.add(commit.getFullMessage());
}
使用git日志,它给出了以下结果。提交a867b4a-添加的新功能应在下一版本1.12中
$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date: Thu Nov 4 18:59:41 2010 -0400
- prepare release version 1.12
commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date: Thu Nov 4 05:13:39 2010 -0400
- More stuff
commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date: Thu Nov 4 00:55:06 2010 -0400
prepare release version **1.11**
commit **a867b4af366350be2e7c21b8de9cc6504678a61b`**
Author: Me <me@me.com>
Date: Thu Nov 4 18:59:41 2010 -0400
- Added new functionality
$git日志
提交a867b4af366350be2e7c21b8de9cc6504678a61b`
作者:我
日期:周四11月4日18:59:41 2010-0400
-准备发布版本1.12
提交25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
作者:我
日期:2010年11月4日星期四05:13:39-0400
-更多的东西
提交0766c053c0ea2035e90f504928f8df3c9363b8bd
作者:我
日期:2010年11月4日星期四00:55:06-0400
准备发布版本**1.11**
提交**a867b4af366350be2e7c21b8de9cc6504678a61b`**
作者:我
日期:周四11月4日18:59:41 2010-0400
-增加了新功能
git日志--topo order works提交a867b4a-添加的新功能位于正确的标记1.12中
$ git log --topo-order
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date: Thu Nov 4 18:59:41 2010 -0400
- prepare release version 1.12
commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date: Thu Nov 4 05:13:39 2010 -0400
- More stuff
commit **a867b4af366350be2e7c21b8de9cc6504678a61b`**
Author: Me <me@me.com>
Date: Thu Nov 4 18:59:41 2010 -0400
- Added new functionality
commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date: Thu Nov 4 00:55:06 2010 -0400
prepare release version 1.11
$git日志--拓扑顺序
提交a867b4af366350be2e7c21b8de9cc6504678a61b`
作者:我
日期:周四11月4日18:59:41 2010-0400
-准备发布版本1.12
提交25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
作者:我
日期:2010年11月4日星期四05:13:39-0400
-更多的东西
提交**a867b4af366350be2e7c21b8de9cc6504678a61b`**
作者:我
日期:周四11月4日18:59:41 2010-0400
-增加了新功能
提交0766c053c0ea2035e90f504928f8df3c9363b8bd
作者:我
日期:2010年11月4日星期四00:55:06-0400
准备发布版本1.11