Build-in merge-recursive
authorDaniel Barkalow <barkalow@iabervon.org>
Thu, 7 Feb 2008 16:40:05 +0000 (11:40 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sun, 10 Feb 2008 07:16:51 +0000 (23:16 -0800)
commite1b3a2cad79a8138d18593c6eb3c46906ad2ee42
tree67706beab8903194e73acf4486665d59c15b7099
parent4e7c4571b8b31d6a09de2826361540caa76d3526
Build-in merge-recursive

This makes write_tree_from_memory(), which writes the active cache as
a tree and returns the struct tree for it, available to other code. It
also makes available merge_trees(), which does the internal merge of
two trees with a known base, and merge_recursive(), which does the
recursive internal merge of two commits with a list of common
ancestors.

The first two of these will be used by checkout -m, and the third is
presumably useful in general, although the implementation of checkout
-m which entirely matches the behavior of the shell version does not
use it (since it ignores the difference of ancestry between the old
branch and the new branch).

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Makefile
builtin-merge-recursive.c [moved from merge-recursive.c with 98% similarity]
builtin.h
git.c
merge-recursive.h [new file with mode: 0644]