找到了解决这个问题的方法。我所做的是在查询中添加一个“&o=MESSAGES”标记,以检索完整的更改历史列表,其中revert消息为您提供了目标提交ID。
然后我转移收藏<&燃气轮机;这会返回到列表中,以便我可以轻松访问所有消息。
Collection<ChangeMessageInfo> messageColl = gerritClient.changes().query("commit:<commitID>&o=MESSAGES").get().get(0).messages;
final List<ChangeMessageInfo> messageList = new ArrayList<>(messageColl);
可以找到以类似方式使用的标签列表
here
。您需要向下滚动一点才能找到标签。
更新:
List<String> revertedCommits = new ArrayList<>();
revertedCommits.add(<commitID>);
String revertedCommit = "unknown";
Map<String, RevisionInfo> revisionInfo = gerritClient.changes().query("commit:" + revertedCommits.get(revertedCommits.size() - 1) + "&o=CURRENT_REVISION&o=COMMIT_FOOTERS").get().get(0).revisions;
Pattern p = Pattern.compile(Pattern.quote("This reverts commit ") + "(.*?)" + Pattern.quote("."));
Matcher m = p.matcher(revisionInfo.values().iterator().next().commitWithFooters);
while (m.find()) {
revertedCommit = m.group(1);
}
请注意,我在查询中使用了“o=CURRENT\u REVISION”和“o=COMMIT\u FOOTERS”标记来访问此信息。没有这些标记,您只能得到一个空数组。