]> git.ipfire.org Git - thirdparty/git.git/commit - Documentation/git-commit-graph.txt
builtin/commit-graph.c: introduce split strategy 'no-merge'
authorTaylor Blau <me@ttaylorr.com>
Tue, 14 Apr 2020 04:04:12 +0000 (22:04 -0600)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Apr 2020 16:20:27 +0000 (09:20 -0700)
commitfdbde82fe523374b3c5d1f0f01f3c43dcaca9465
tree4218bdad84063c7b7ce921c53c0c6f57343e3aaa
parent4f027355f6b6b5b2ba69e23ff50cb7313d13dd70
builtin/commit-graph.c: introduce split strategy 'no-merge'

In the previous commit, we laid the groundwork for supporting different
splitting strategies. In this commit, we introduce the first splitting
strategy: 'no-merge'.

Passing '--split=no-merge' is useful for callers which wish to write a
new incremental commit-graph, but do not want to spend effort condensing
the incremental chain [1]. Previously, this was possible by passing
'--size-multiple=0', but this no longer the case following 63020f175f
(commit-graph: prefer default size_mult when given zero, 2020-01-02).

When '--split=no-merge' is given, the commit-graph machinery will never
condense an existing chain, and it will always write a new incremental.

[1]: This might occur when, for example, a server administrator running
some program after each push may want to ensure that each job runs
proportional in time to the size of the push, and does not "jump" when
the commit-graph machinery decides to trigger a merge.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-commit-graph.txt
builtin/commit-graph.c
commit-graph.c
commit-graph.h
t/t5324-split-commit-graph.sh