Skip to content
Commits on Aug 31, 2008
  1. @sbeyer @gitster

    merge-recursive.c: Add more generic merge_recursive_generic()

    sbeyer committed with gitster
    merge_recursive_generic() takes, in comparison to to merge_recursive(),
    no commit ("struct commit *") arguments but SHA ids ("unsigned char *"),
    and no commit list of bases but an array of refs ("const char **").
    This makes it more generic in the case that it can also take the SHA
    of a tree to merge trees without commits, for the bases, the head
    and the remote.
    merge_recursive_generic() also handles locking and updating of the
    index, which is a common use case of merge_recursive().
    This patch also rewrites builtin-merge-recursive.c to make use of
    merge_recursive_generic().  By doing this, I stumbled over the
    limitation of 20 bases and I've added a warning if this limitation
    is exceeded.
    This patch qualifies make_virtual_commit() as static again because
    this function is not needed anymore outside merge-recursive.c.
    Signed-off-by: Stephan Beyer <>
    Signed-off-by: Junio C Hamano <>
Something went wrong with that request. Please try again.