Re: [PATCH (1b)] merge-recursive.c: Add more generic merge_recursive_generic()
- From
Daniel Barkalow <barkalow@iabervon.org>
- Date
- Aug 13, 2008, 03:17 UTC
- Message-ID
- <alpine.LNX.1.00.0808122309460.19665@iabervon.org>
- In-Reply-To
- <1218572040-23362-1-git-send-email-s-beyer@gmx.net>
On Tue, 12 Aug 2008, Stephan Beyer wrote:
Show 18 quoted lines
> 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*