merge-tree: support multiple batched merges with --stdin
commitec1edbcb56ac05e9980299b05924c5c1b51d68b4
authorElijah Newren <newren@gmail.com>
Sun, 23 Oct 2022 01:28:05 +0000 (23 01:28 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 23 Oct 2022 05:21:26 +0000 (22 22:21 -0700)
treed37382b1d062044bfab4b32bd62b13842aa84cbe
parenta9f5bb83e0341a04c46b2dec27e16c793d6447f8
merge-tree: support multiple batched merges with --stdin

Add an option, --stdin, to merge-tree which will accept lines of input
with two branches to merge per line, and which will perform all the
merges and give output for each in turn.  This option implies -z, and
modifies the output to also include a merge status since the exit code
of the program can no longer convey that information now that multiple
merges are involved.

This could be useful, for example, by Git hosting providers.  When one
branch is updated, one may want to check whether all code reviews
targetting that branch can still cleanly merge.  Avoiding the overhead
of starting up a separate process for each of those code reviews might
provide significant savings in a repository with many code reviews.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-merge-tree.txt
builtin/merge-tree.c
t/t4301-merge-tree-write-tree.sh