如何判断Libgit2中的快进和非快进?

时间:2018-05-05 11:31:51

标签: merge pull libgit2

当我使用libgit2 merge时,我发现每个合并产生了一个新的 oid ,因此应该有一个函数来确定在合并提交之前是否需要合并提交。我使用 git_merge_analysis()来确定哪种合并方法,但它总是返回 GIT_MERGE_ANALYSIS_UP_TO_DATE ,想知道这是不是一个好习惯,那么最好的方法是什么?< / p>

1 个答案:

答案 0 :(得分:2)

git_merge_analysis应尽可能返回GIT_MERGE_ANALYSIS_FASTFORWARD。否则,假设它不是最​​新的(提交oid相等),正常结果表明需要像往常一样进行合并 - 这是不可能进行快进合并的时候。

就个人而言,当我第一次使用libgit2时,我会经常混淆“我们的”和“他们的”,这会导致意想不到的结果。由于分析方法是将“他们的”与当前的HEAD进行比较,如果'他们'等于或已经是HEAD当前引用的提交的祖先(可能已设置),则可以获得最新结果作为先前合并的结果)。然而,如果事情被换掉了,如果HEAD是'他们'的祖先,你就会得到快速的结果。