Skip to content

Commit 06880cf

Browse files
committed
Merge branch 'ds/commit-graph-tests'
We can now optionally run tests with commit-graph enabled. * ds/commit-graph-tests: commit-graph: define GIT_TEST_COMMIT_GRAPH
2 parents b458300 + 859fdc0 commit 06880cf

8 files changed

+22
-12
lines changed

builtin/commit.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "mailmap.h"
3535
#include "help.h"
3636
#include "commit-reach.h"
37+
#include "commit-graph.h"
3738

3839
static const char * const builtin_commit_usage[] = {
3940
N_("git commit [<options>] [--] <pathspec>..."),
@@ -1652,6 +1653,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
16521653
"new_index file. Check that disk is not full and quota is\n"
16531654
"not exceeded, and then \"git reset HEAD\" to recover."));
16541655

1656+
if (git_env_bool(GIT_TEST_COMMIT_GRAPH, 0))
1657+
write_commit_graph_reachable(get_object_directory(), 0);
1658+
16551659
rerere(0);
16561660
run_command_v_opt(argv_gc_auto, RUN_GIT_CMD);
16571661
run_commit_hook(use_editor, get_index_file(), "post-commit", NULL);

commit-graph.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,9 @@ static int prepare_commit_graph(struct repository *r)
213213
return !!r->objects->commit_graph;
214214
r->objects->commit_graph_attempted = 1;
215215

216-
if (repo_config_get_bool(r, "core.commitgraph", &config_value) ||
217-
!config_value)
216+
if (!git_env_bool(GIT_TEST_COMMIT_GRAPH, 0) &&
217+
(repo_config_get_bool(r, "core.commitgraph", &config_value) ||
218+
!config_value))
218219
/*
219220
* This repository is not configured to use commit graphs, so
220221
* do not load one. (But report commit_graph_attempted anyway

commit-graph.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
#include "string-list.h"
77
#include "cache.h"
88

9+
#define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH"
10+
911
struct commit;
1012

1113
char *get_commit_graph_filename(const char *obj_dir);

t/README

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,10 @@ GIT_TEST_VALIDATE_INDEX_CACHE_ENTRIES=<boolean> checks that cache-tree
323323
records are valid when the index is written out or after a merge. This
324324
is mostly to catch missing invalidation. Default is true.
325325

326+
GIT_TEST_COMMIT_GRAPH=<boolean>, when true, forces the commit-graph to
327+
be written after every 'git commit' command, and overrides the
328+
'core.commitGraph' setting to true.
329+
326330
Naming Tests
327331
------------
328332

t/t0410-partial-clone.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ test_expect_success 'rev-list stops traversal at missing and promised commit' '
181181
182182
git -C repo config core.repositoryformatversion 1 &&
183183
git -C repo config extensions.partialclone "arbitrary string" &&
184-
git -C repo rev-list --exclude-promisor-objects --objects bar >out &&
184+
GIT_TEST_COMMIT_GRAPH=0 git -C repo rev-list --exclude-promisor-objects --objects bar >out &&
185185
grep $(git -C repo rev-parse bar) out &&
186186
! grep $FOO out
187187
'

t/t5307-pack-missing-commit.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ test_expect_success 'check corruption' '
2424
'
2525

2626
test_expect_success 'rev-list notices corruption (1)' '
27-
test_must_fail git rev-list HEAD
27+
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list HEAD
2828
'
2929

3030
test_expect_success 'rev-list notices corruption (2)' '
31-
test_must_fail git rev-list --objects HEAD
31+
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list --objects HEAD
3232
'
3333

3434
test_expect_success 'pack-objects notices corruption' '

t/t6011-rev-list-with-bad-commit.sh

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,9 @@ test_expect_success 'corrupt second commit object' \
4141
test_must_fail git fsck --full
4242
'
4343

44-
test_expect_success 'rev-list should fail' \
45-
'
46-
test_must_fail git rev-list --all > /dev/null
47-
'
44+
test_expect_success 'rev-list should fail' '
45+
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list --all > /dev/null
46+
'
4847

4948
test_expect_success 'git repack _MUST_ fail' \
5049
'

t/t6024-recursive-merge.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ git update-index a1 &&
6060
GIT_AUTHOR_DATE="2006-12-12 23:00:08" git commit -m F
6161
'
6262

63-
test_expect_success "combined merge conflicts" "
64-
test_must_fail git merge -m final G
65-
"
63+
test_expect_success 'combined merge conflicts' '
64+
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git merge -m final G
65+
'
6666

6767
cat > expect << EOF
6868
<<<<<<< HEAD

0 commit comments

Comments
 (0)