Hi, This is a reworked version of a couple of series [1, 2] that add various options to the 'git commit-graph write' builtin. I had developed [1, 2] while deploying incremental commit-graphs at GitHub, and so there was a lot in flux about what options we needed and so on. Now that the dust has settled, I cleaned up all of the patches generated during that time into a grab-bag series that reflects what we ended up sticking with. Namely, I got rid of the '--input=<source>' options ('--input=none' was confusing at best, and we ended up not needing it), as well as '--split=merge-all'. We used to use this to roll up all of the incremental graphs generated during pushes into one big length-1 chain every N pushes. But, we ended up abandoning this, too, in favor of '--split=replace', which is described in the fourth patch. I'm not sure if anyone will be sad to see '--split=merge-all' go, so if you are, please let me know and I'll drag that patch back in. Thanks for all of the review that I've received so far, and thanks in advance for your review on these patches. [1]: https://lore.kernel.org/git/cover.1580430057.git.me@xxxxxxxxxxxx/ [2]: https://lore.kernel.org/git/cover.1584762087.git.me@xxxxxxxxxxxx/ Taylor Blau (7): t/helper/test-read-graph.c: support commit-graph chains builtin/commit-graph.c: support for '--split[=<strategy>]' builtin/commit-graph.c: introduce split strategy 'no-merge' builtin/commit-graph.c: introduce split strategy 'replace' oidset: introduce 'oidset_size' commit-graph.h: replace 'commit_hex' with 'commits' commit-graph.c: introduce '--[no-]check-oids' Documentation/git-commit-graph.txt | 22 +++-- builtin/commit-graph.c | 59 +++++++++++-- commit-graph.c | 129 +++++++++++++++++++---------- commit-graph.h | 10 ++- oidset.c | 5 ++ oidset.h | 5 ++ t/helper/test-read-graph.c | 13 +-- t/t5318-commit-graph.sh | 30 ++++++- t/t5324-split-commit-graph.sh | 30 +++++++ 9 files changed, 230 insertions(+), 73 deletions(-) -- 2.26.0.106.g9fadedd637