fetch: add fetch.writeCommitGraph config setting
The commit-graph feature is now on by default, and is being written during 'git gc' by default. Typically, Git only writes a commit-graph when a 'git gc --auto' command passes the gc.auto setting to actualy do work. This means that a commit-graph will typically fall behind the commits that are being used every day. To stay updated with the latest commits, add a step to 'git fetch' to write a commit-graph after fetching new objects. The fetch.writeCommitGraph config setting enables writing a split commit-graph, so on average the cost of writing this file is very small. Occasionally, the commit-graph chain will collapse to a single level, and this could be slow for very large repos. For additional use, adjust the default to be true when feature.experimental is enabled. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
aaf633c2ad
commit
50f26bd035
@ -570,6 +570,19 @@ test_expect_success 'LHS of refspec follows ref disambiguation rules' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'fetch.writeCommitGraph' '
|
||||
git clone three write &&
|
||||
(
|
||||
cd three &&
|
||||
test_commit new
|
||||
) &&
|
||||
(
|
||||
cd write &&
|
||||
git -c fetch.writeCommitGraph fetch origin &&
|
||||
test_path_is_file .git/objects/info/commit-graphs/commit-graph-chain
|
||||
)
|
||||
'
|
||||
|
||||
# configured prune tests
|
||||
|
||||
set_config_tristate () {
|
||||
|
Reference in New Issue
Block a user