Introduce get_merge_bases_many() · wolfpython/git@6a93864 · GitHub
Skip to content

Commit 6a93864

Browse files
committed
Introduce get_merge_bases_many()
This introduces a new function get_merge_bases_many() which is a natural extension of two commit merge base computation. It is given one commit (one) and a set of other commits (twos), and computes the merge base of one and a merge across other commits. This is mostly useful to figure out the common ancestor when iterating over heads during an octopus merge. When making an octopus between commits A, B, C and D, we first merge tree of A and B, and then try to merge C with it. If we were making pairwise merge, we would be recording the tree resulting from the merge between A and B as a commit, say M, and then the next round we will be computing the merge base between M and C. o---C...* / . o---B...M / . o---o---A But during an octopus merge, we actually do not create a commit M. In order to figure out that the common ancestor to use for this merge, instead of computing the merge base between C and M, we can call merge_bases_many() with one set to C and twos containing A and B. Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 5948e2a commit 6a93864

1 file changed

Lines changed: 38 additions & 18 deletions

File tree

commit.c

Lines changed: 38 additions & 18 deletions

0 commit comments

Comments
 (0)