Thread (13 messages) flat view 13 messages, 4 authors, 2016-06-15

Re: [PATCH (1b)] merge-recursive.c: Add more generic merge_recursive_generic()

From: Daniel Barkalow <hidden>
Date: 2016-06-15 22:45:09

Possibly related (same subject, not in this thread)

On Tue, 12 Aug 2008, Stephan Beyer wrote:
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.
You might look at builtin-checkout and see if merge_working_tree() could 
be made cleaner with this API, or if some other API could accomodate both 
cases more nicely.

(I'm not sure either way, but it would be a good confirmation that the API 
is properly convenient if that additional case could use it.)

	-Daniel
*This .sig left intentionally blank*
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help