Skip to content

Commit 60bbc15

Browse files
committed
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>
1 parent 2a5f1e1 commit 60bbc15

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

commit-graph.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -564,10 +564,6 @@ static int prepare_commit_graph(struct repository *r)
564564
return !!r->objects->commit_graph;
565565
r->objects->commit_graph_attempted = 1;
566566

567-
if (git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD, 0))
568-
die("dying as requested by the '%s' variable on commit-graph load!",
569-
GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD);
570-
571567
prepare_repo_settings(r);
572568

573569
if (!git_env_bool(GIT_TEST_COMMIT_GRAPH, 0) &&
@@ -790,6 +786,14 @@ static int parse_commit_in_graph_one(struct repository *r,
790786

791787
int parse_commit_in_graph(struct repository *r, struct commit *item)
792788
{
789+
static int checked_env = 0;
790+
791+
if (!checked_env &&
792+
git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE, 0))
793+
die("dying as requested by the '%s' variable on commit-graph parse!",
794+
GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE);
795+
checked_env = 1;
796+
793797
if (!prepare_commit_graph(r))
794798
return 0;
795799
return parse_commit_in_graph_one(r, r->objects->commit_graph, item);

commit-graph.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "object-store.h"
66

77
#define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH"
8-
#define GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD "GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD"
8+
#define GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE "GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE"
99
#define GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS "GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS"
1010

1111
/*

t/t5318-commit-graph.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ corrupt_graph_verify() {
436436
cp $objdir/info/commit-graph commit-graph-pre-write-test
437437
fi &&
438438
git status --short &&
439-
GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD=true git commit-graph write &&
439+
GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE=true git commit-graph write &&
440440
git commit-graph verify
441441
}
442442

0 commit comments

Comments
 (0)