On 4/13/2020 6:21 PM, Junio C Hamano wrote: > Taylor Blau <me@xxxxxxxxxxxx> writes: > >> 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,... > > Yeah, I agree that it would be a lot cleaner if that is easy to > arrange. I have a suspicion that Derrick already tried and the > resulting code looked messier and was discarded? Perhaps I could fix both concerns by 1. Use a macro instead of a library call. 2. Check the _CHANGED_PATHS variable in the macro. The macro would look like this: #define git_test_write_commit_graph_or_die() \ if (git_env_bool(GIT_TEST_COMMIT_GRAPH, 0)) { \ int flags = 0; \ if (git_env_bool(GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS, 0)) \ flags = COMMIT_GRAPH_WRITE_BLOOM_FILTERS; \ if (write_commit_graph_reachable( \ the_repository->objects->odb, flags, NULL)) \ die("failed to write commit-graph under GIT_TEST_COMMIT_GRAPH"); \ } Thanks, -Stolee