On Mon, Apr 13, 2020 at 02:45:24PM +0000, Derrick Stolee via GitGitGadget wrote: > From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > > The GIT_TEST_COMMIT_GRAPH environment variable updates the commit- > graph file whenever "git commit" is run, ensuring that we always > have an updated commit-graph throughout the test suite. The > GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS environment variable was > introduced to write the changed-path Bloom filters whenever "git > commit-graph write" is run. However, the GIT_TEST_COMMIT_GRAPH > trick doesn't launch a separate process and instead writes it > directly. > > Update the "git commit" builtin to write changed-path Bloom filters > when both GIT_TEST_COMMIT_GRAPH and GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS > are enabled. > > Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > --- > commit-graph.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/commit-graph.c b/commit-graph.c > index 77668629e27..3e8f36ce5c8 100644 > --- a/commit-graph.c > +++ b/commit-graph.c > @@ -1968,6 +1968,8 @@ int write_commit_graph(struct object_directory *odb, > ctx->check_oids = flags & COMMIT_GRAPH_WRITE_CHECK_OIDS ? 1 : 0; > ctx->split_opts = split_opts; > ctx->changed_paths = flags & COMMIT_GRAPH_WRITE_BLOOM_FILTERS ? 1 : 0; > + if (git_env_bool(GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS, 0)) > + ctx->changed_paths = 1; Hmm. I'm not crazy about a library function looking at 'GIT_TEST_*' environment variables and potentially ignoring its arguments, but given the discussion we had in v1, I don't feel strongly enough to recommend that you change this. For what it's worth, I think that 'write_commit_graph' could behave more purely if callers checked 'GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS' and set 'flags' appropriately from the outside, but I can understand also why it's preferred to do it in this style, too. > ctx->total_bloom_filter_data_size = 0; > > if (ctx->split) { > -- > gitgitgadget > Thanks, Taylor