mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
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
This commit is contained in:
commit
06880cff38
|
@ -34,6 +34,7 @@
|
||||||
#include "mailmap.h"
|
#include "mailmap.h"
|
||||||
#include "help.h"
|
#include "help.h"
|
||||||
#include "commit-reach.h"
|
#include "commit-reach.h"
|
||||||
|
#include "commit-graph.h"
|
||||||
|
|
||||||
static const char * const builtin_commit_usage[] = {
|
static const char * const builtin_commit_usage[] = {
|
||||||
N_("git commit [<options>] [--] <pathspec>..."),
|
N_("git commit [<options>] [--] <pathspec>..."),
|
||||||
|
@ -1652,6 +1653,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
||||||
"new_index file. Check that disk is not full and quota is\n"
|
"new_index file. Check that disk is not full and quota is\n"
|
||||||
"not exceeded, and then \"git reset HEAD\" to recover."));
|
"not exceeded, and then \"git reset HEAD\" to recover."));
|
||||||
|
|
||||||
|
if (git_env_bool(GIT_TEST_COMMIT_GRAPH, 0))
|
||||||
|
write_commit_graph_reachable(get_object_directory(), 0);
|
||||||
|
|
||||||
rerere(0);
|
rerere(0);
|
||||||
run_command_v_opt(argv_gc_auto, RUN_GIT_CMD);
|
run_command_v_opt(argv_gc_auto, RUN_GIT_CMD);
|
||||||
run_commit_hook(use_editor, get_index_file(), "post-commit", NULL);
|
run_commit_hook(use_editor, get_index_file(), "post-commit", NULL);
|
||||||
|
|
|
@ -213,8 +213,9 @@ static int prepare_commit_graph(struct repository *r)
|
||||||
return !!r->objects->commit_graph;
|
return !!r->objects->commit_graph;
|
||||||
r->objects->commit_graph_attempted = 1;
|
r->objects->commit_graph_attempted = 1;
|
||||||
|
|
||||||
if (repo_config_get_bool(r, "core.commitgraph", &config_value) ||
|
if (!git_env_bool(GIT_TEST_COMMIT_GRAPH, 0) &&
|
||||||
!config_value)
|
(repo_config_get_bool(r, "core.commitgraph", &config_value) ||
|
||||||
|
!config_value))
|
||||||
/*
|
/*
|
||||||
* This repository is not configured to use commit graphs, so
|
* This repository is not configured to use commit graphs, so
|
||||||
* do not load one. (But report commit_graph_attempted anyway
|
* do not load one. (But report commit_graph_attempted anyway
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
#include "string-list.h"
|
#include "string-list.h"
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
|
||||||
|
#define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH"
|
||||||
|
|
||||||
struct commit;
|
struct commit;
|
||||||
|
|
||||||
char *get_commit_graph_filename(const char *obj_dir);
|
char *get_commit_graph_filename(const char *obj_dir);
|
||||||
|
|
4
t/README
4
t/README
|
@ -323,6 +323,10 @@ GIT_TEST_VALIDATE_INDEX_CACHE_ENTRIES=<boolean> checks that cache-tree
|
||||||
records are valid when the index is written out or after a merge. This
|
records are valid when the index is written out or after a merge. This
|
||||||
is mostly to catch missing invalidation. Default is true.
|
is mostly to catch missing invalidation. Default is true.
|
||||||
|
|
||||||
|
GIT_TEST_COMMIT_GRAPH=<boolean>, when true, forces the commit-graph to
|
||||||
|
be written after every 'git commit' command, and overrides the
|
||||||
|
'core.commitGraph' setting to true.
|
||||||
|
|
||||||
Naming Tests
|
Naming Tests
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@ test_expect_success 'rev-list stops traversal at missing and promised commit' '
|
||||||
|
|
||||||
git -C repo config core.repositoryformatversion 1 &&
|
git -C repo config core.repositoryformatversion 1 &&
|
||||||
git -C repo config extensions.partialclone "arbitrary string" &&
|
git -C repo config extensions.partialclone "arbitrary string" &&
|
||||||
git -C repo rev-list --exclude-promisor-objects --objects bar >out &&
|
GIT_TEST_COMMIT_GRAPH=0 git -C repo rev-list --exclude-promisor-objects --objects bar >out &&
|
||||||
grep $(git -C repo rev-parse bar) out &&
|
grep $(git -C repo rev-parse bar) out &&
|
||||||
! grep $FOO out
|
! grep $FOO out
|
||||||
'
|
'
|
||||||
|
|
|
@ -24,11 +24,11 @@ test_expect_success 'check corruption' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'rev-list notices corruption (1)' '
|
test_expect_success 'rev-list notices corruption (1)' '
|
||||||
test_must_fail git rev-list HEAD
|
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'rev-list notices corruption (2)' '
|
test_expect_success 'rev-list notices corruption (2)' '
|
||||||
test_must_fail git rev-list --objects HEAD
|
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list --objects HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'pack-objects notices corruption' '
|
test_expect_success 'pack-objects notices corruption' '
|
||||||
|
|
|
@ -41,10 +41,9 @@ test_expect_success 'corrupt second commit object' \
|
||||||
test_must_fail git fsck --full
|
test_must_fail git fsck --full
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'rev-list should fail' \
|
test_expect_success 'rev-list should fail' '
|
||||||
'
|
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git rev-list --all > /dev/null
|
||||||
test_must_fail git rev-list --all > /dev/null
|
'
|
||||||
'
|
|
||||||
|
|
||||||
test_expect_success 'git repack _MUST_ fail' \
|
test_expect_success 'git repack _MUST_ fail' \
|
||||||
'
|
'
|
||||||
|
|
|
@ -60,9 +60,9 @@ git update-index a1 &&
|
||||||
GIT_AUTHOR_DATE="2006-12-12 23:00:08" git commit -m F
|
GIT_AUTHOR_DATE="2006-12-12 23:00:08" git commit -m F
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success "combined merge conflicts" "
|
test_expect_success 'combined merge conflicts' '
|
||||||
test_must_fail git merge -m final G
|
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git merge -m final G
|
||||||
"
|
'
|
||||||
|
|
||||||
cat > expect << EOF
|
cat > expect << EOF
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
|
|
Loading…
Reference in a new issue