我试图在分支foo
上找到不在master
上的提交。我可以在简单的情况下使用此功能,但是一旦将新的更改从master
合并到foo
中,它就会崩溃。
详细信息:
master
上提交了A,B和C foo
并在其中添加提交D和E master
上创建提交F master
合并到foo
(使用合并提交)现在尝试获取合并基础将返回F
而不是C
。因此,我无法遍历从C
到foo
头的提交(给C
,D
,E
,F
,然后,我将使用D
缩小到E
和isMergedInto
)
public RevCommit findMergeBase(ObjectId foo, ObjectId bar) throws MissingObjectException,
IncorrectObjectTypeException, IOException {
RevWalk walk = null;
try {
walk = new RevWalk(repo);
RevCommit fooHead = walk.parseCommit(foo);
RevCommit barHead = walk.parseCommit(bar);
walk.setRevFilter(RevFilter.MERGE_BASE);
walk.markStart(fooHead);
walk.markStart(barHead);
RevCommit base = null;
while (true) {
RevCommit commit = walk.next();
if (commit == null)
break;
base = commit;
}
return base;
}
finally {
if (walk != null) {
walk.reset();
walk.close();
walk.dispose();
}
}
}
答案 0 :(得分:0)
好像是我由远程主分支的功能分支创建的问题?因此,它不知道功能分支如何连接到我的本地主机?更新我的本地主分支后,它就会按预期工作。