On Mon, Sep 13, 2021 at 04:15:09PM -0700, Glen Choo wrote: > > > + cd "$TRASH_DIRECTORY/full" && > > > + git fsck && > > > + corrupt_graph_and_verify $GRAPH_BYTE_FOOTER "\00" \ > > > + "incorrect checksum" && > > > + git config --unset core.commitGraph && > > > > But I'm not aware of a way to temporarily unset a configuration variable > > for the duration of a test, so here I would probably write: > > > > test_must_fail git -c core.commitGraph= fsck > > > > which Git interprets as "pretend this variable is unset in-core". > > From my testing, I suspect that git does not pretend the variable is > unset, but rather, it pretends that the variable is set to the empty > string. It seems that git behaves as if the variable is set to "false". > This is called out in Documentation/git.txt: > > Including the equals but with an empty value (like `git -c > foo.bar= ...`) sets `foo.bar` to the empty string which `git config > --type=bool` will convert to `false`. > > If the variable really is set to false, how might we proceed here? Shall > we stick with test_when_finished? Hmm, I thought that we did support `git -c foo.bar=` as shorthand to unset the key `foo.bar`, but I must have been mistaken, because the documentation there is quite clear. In that case, I think your original approach to use test_when_finished makes sense and is good. Thanks for double checking! Thanks, Taylor