我是否需要指定分支来列出 JGit 中两个修订版之间的提交?
Do I need to specify the branches to list commits between two revisions in JGit?
我想使用 JGit 获取存储库中两个修订(散列)之间的提交列表。
我不知道提交(开始提交哈希、结束提交哈希)是在一个分支还是不同的分支中。
我知道如何在 JGit 中从提交开始遍历树。
我的问题:我是否必须在存储库的所有分支中查找提交哈希值,或者我可以像这样只使用 Respository::resolve()
:
Repository repository = git.getRepository();
walk.parseCommit(repository.resolve(commitHash));
并确定我会找到提交的开始和结束?
分支和其他引用(例如标签)只是 指针 提交 ID。因此,您可以安全地使用提交 ID 来列出两次提交之间的修订。
要完成您的示例:
ObjectId startCommit = walk.parseCommit( repository.resolve( startCommitId ) );
RevCommit endCommit walk.parseCommit( repository.resolve( startCommitId ) );
// configure and use walk
我想使用 JGit 获取存储库中两个修订(散列)之间的提交列表。
我不知道提交(开始提交哈希、结束提交哈希)是在一个分支还是不同的分支中。
我知道如何在 JGit 中从提交开始遍历树。
我的问题:我是否必须在存储库的所有分支中查找提交哈希值,或者我可以像这样只使用 Respository::resolve()
:
Repository repository = git.getRepository();
walk.parseCommit(repository.resolve(commitHash));
并确定我会找到提交的开始和结束?
分支和其他引用(例如标签)只是 指针 提交 ID。因此,您可以安全地使用提交 ID 来列出两次提交之间的修订。
要完成您的示例:
ObjectId startCommit = walk.parseCommit( repository.resolve( startCommitId ) );
RevCommit endCommit walk.parseCommit( repository.resolve( startCommitId ) );
// configure and use walk