在缺乏JGit文档不似乎说一下如何使用/,而使用RevWalk检测分支东西。
这个问题说,几乎同样的事情。
所以我的问题是:我如何从RevCommit分支名称/ ID? 或如何指定遍历前手哪个分支?
在缺乏JGit文档不似乎说一下如何使用/,而使用RevWalk检测分支东西。
这个问题说,几乎同样的事情。
所以我的问题是:我如何从RevCommit分支名称/ ID? 或如何指定遍历前手哪个分支?
找到了一个更好的方式通过循环分支机构去做。
我绕挂在树枝通过调用
for (Ref branch : git.branchList().call()){
git.checkout().setName(branch.getName()).call();
// Then just revwalk as normal.
}
在当前实现JGit的展望(见它的混帐回购协议及其RevCommit类),我没有发现什么是“上市相当于混帐:寻找什么分支提交的来源 ”。
即:
git branch --contains <commit>
只有一些选项git branch
来实现(如在ListBranchCommand.java
)。
可以使用下面的代码为“从”分支得到的承诺:
/**
* find out which branch that specified commit come from.
*
* @param commit
* @return branch name.
* @throws GitException
*/
public String getFromBranch(RevCommit commit) throws GitException{
try {
Collection<ReflogEntry> entries = git.reflog().call();
for (ReflogEntry entry:entries){
if (!entry.getOldId().getName().equals(commit.getName())){
continue;
}
CheckoutEntry checkOutEntry = entry.parseCheckout();
if (checkOutEntry != null){
return checkOutEntry.getFromBranch();
}
}
return null;
} catch (Exception e) {
throw new GitException("fail to get ref log.", e);
}
}