gc: automatically write commit-graph files
The commit-graph file is a very helpful feature for speeding up git operations. In order to make it more useful, make it possible to write the commit-graph file during standard garbage collection operations. Add a 'gc.commitGraph' config setting that triggers writing a commit-graph file after any non-trivial 'git gc' command. Defaults to false while the commit-graph feature matures. We specifically do not want to have this on by default until the commit-graph feature is fully integrated with history-modifying features like shallow clones. Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> 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
59fb87701f
commit
d5d5d7b641
@ -245,6 +245,20 @@ test_expect_success 'perform fast-forward merge in full repo' '
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
test_expect_success 'check that gc computes commit-graph' '
|
||||
cd "$TRASH_DIRECTORY/full" &&
|
||||
git commit --allow-empty -m "blank" &&
|
||||
git commit-graph write --reachable &&
|
||||
cp $objdir/info/commit-graph commit-graph-before-gc &&
|
||||
git reset --hard HEAD~1 &&
|
||||
git config gc.writeCommitGraph true &&
|
||||
git gc &&
|
||||
cp $objdir/info/commit-graph commit-graph-after-gc &&
|
||||
! test_cmp commit-graph-before-gc commit-graph-after-gc &&
|
||||
git commit-graph write --reachable &&
|
||||
test_cmp commit-graph-after-gc $objdir/info/commit-graph
|
||||
'
|
||||
|
||||
# the verify tests below expect the commit-graph to contain
|
||||
# exactly the commits reachable from the commits/8 branch.
|
||||
# If the file changes the set of commits in the list, then the
|
||||
|
Reference in New Issue
Block a user