mirror of
https://github.com/git/git.git
synced 2024-11-27 12:03:55 +08:00
commit-graph: change test to die on parse, not load
43d3561
(commit-graph write: don't die if the existing graph is corrupt,
2019-03-25) introduced the GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD environment
variable. This was created to verify that commit-graph was not loaded
when writing a new non-incremental commit-graph.
An upcoming change wants to load a commit-graph in some valuable cases,
but we want to maintain that we don't trust the commit-graph data when
writing our new file. Instead of dying on load, instead die if we ever
try to parse a commit from the commit-graph. This functionally verifies
the same intended behavior, but allows a more advanced feature in the
next change.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
98037f2bf2
commit
7b671f8c2b
@ -564,10 +564,6 @@ static int prepare_commit_graph(struct repository *r)
|
||||
return !!r->objects->commit_graph;
|
||||
r->objects->commit_graph_attempted = 1;
|
||||
|
||||
if (git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD, 0))
|
||||
die("dying as requested by the '%s' variable on commit-graph load!",
|
||||
GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD);
|
||||
|
||||
prepare_repo_settings(r);
|
||||
|
||||
if (!git_env_bool(GIT_TEST_COMMIT_GRAPH, 0) &&
|
||||
@ -790,6 +786,14 @@ static int parse_commit_in_graph_one(struct repository *r,
|
||||
|
||||
int parse_commit_in_graph(struct repository *r, struct commit *item)
|
||||
{
|
||||
static int checked_env = 0;
|
||||
|
||||
if (!checked_env &&
|
||||
git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE, 0))
|
||||
die("dying as requested by the '%s' variable on commit-graph parse!",
|
||||
GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE);
|
||||
checked_env = 1;
|
||||
|
||||
if (!prepare_commit_graph(r))
|
||||
return 0;
|
||||
return parse_commit_in_graph_one(r, r->objects->commit_graph, item);
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "object-store.h"
|
||||
|
||||
#define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH"
|
||||
#define GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD "GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD"
|
||||
#define GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE "GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE"
|
||||
#define GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS "GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS"
|
||||
|
||||
/*
|
||||
|
@ -436,7 +436,7 @@ corrupt_graph_verify() {
|
||||
cp $objdir/info/commit-graph commit-graph-pre-write-test
|
||||
fi &&
|
||||
git status --short &&
|
||||
GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD=true git commit-graph write &&
|
||||
GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE=true git commit-graph write &&
|
||||
git commit-graph verify
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user