Java JGit Differentry显示不存在的提交文件
我试图遍历所有存在的提交,以存储有关它的信息(作者、提交人、时间戳、文件等等)。它工作得很好,但有时当前提交会显示不存在的条目。我将其与GitHub上最初的提交以及本地git repo的图形用户界面进行了比较。我的代码有什么问题吗?或者我的想法有问题吗Java JGit Differentry显示不存在的提交文件,java,git,jgit,Java,Git,Jgit,我试图遍历所有存在的提交,以存储有关它的信息(作者、提交人、时间戳、文件等等)。它工作得很好,但有时当前提交会显示不存在的条目。我将其与GitHub上最初的提交以及本地git repo的图形用户界面进行了比较。我的代码有什么问题吗?或者我的想法有问题吗 private void getInformation() { Repository repository = new FileRepository(path); Git git = new Git(repository);
private void getInformation() {
Repository repository = new FileRepository(path);
Git git = new Git(repository);
RevCommit oldCommit = null;
DiffFormatter diffFormatter = null;
RevWalk walk = null;
boolean first = true;
walk = new RevWalk(repository);
walk.markStart(walk.parseCommit(repository.resolve("HEAD")));
walk.sort(RevSort.REVERSE);
for (RevCommit commit : walk) {
if (first == true) {
oldCommit = commit;
first = false;
}
/* read the old and new commit ID to determine changes (method by Rüdiger Herrmann) */
ObjectReader reader = git.getRepository().newObjectReader();
CanonicalTreeParser oldTree = parseRawGitdata(git, commit, reader);
CanonicalTreeParser newTree = parseRawGitdata(git, oldCommit, reader);
diffFormatter = new DiffFormatter(DisabledOutputStream.INSTANCE);
diffFormatter.setRepository(git.getRepository());
diffFormatter.setDetectRenames(true);
List<DiffEntry> entries = diffFormatter.scan(newTree, oldTree);
if (!entries.isEmpty()) {
for (DiffEntry entry : entries) {
/* only .java class files are relevant */
if (entry.getOldPath().endsWith(".java") || entry.getNewPath().endsWith(".java")) {
/* handle the current ChangeType... */
determineChangeType(entry, commit);
}
}
}
oldCommit = commit;
}
diffFormatter.close();
walk.close();
}
private CanonicalTreeParser parseRawGitdata(Git git, RevCommit commit, ObjectReader reader) {
CanonicalTreeParser treeIter = new CanonicalTreeParser();
ObjectId tree = git.getRepository().resolve(commit.getTree().getName());
treeIter.reset(reader, tree);
return treeIter;
}
根据GitHub,auhor于2016年8月1日承诺(af50018f11d4fdfa8ac04a55f942a4973cb15c87)增加76项,删除17项
+27 −16 core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
+49 −1 core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java
为什么我的Differentry集合包含这么多不属于官方提交的数据
JGit是否也提供了淹没先前数据结构的未提交数据
+27 −16 core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
+49 −1 core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java