On Fri, Apr 6, 2018 at 8:58 PM, Taylor Blau <me@xxxxxxxxxxxx> wrote: > On Fri, Apr 06, 2018 at 03:40:56AM -0400, Eric Sunshine wrote: >> On Fri, Apr 6, 2018 at 2:53 AM, Eric Sunshine <sunshine@xxxxxxxxxxxxxx> wrote: >> One other issue. If "git config --default ..." fails, the --unset line >> will never be invoked, thus cleanup won't happen. >> >> To ensure cleanup, either use: >> >> test_when_finished "git config --unset core.foo" && >> >> earlier in the test (just after the --add line) or use the >> test_config() function to both set the value and ensure its cleanup. > > Neat. I wasn't aware of 'test_when_finished'. I think that I prefer the > explicitness of 'test_when_finished "git config ..."' over > 'test_config()', but I am happy to use whichever is preferred. Since > t1310 is new, there's no historical precedent to follow. Please let me > know if you have a preference one way or another. test_config() is preferred; not only is it shorter but, because it automates cleanup, there's less opportunity to screw up (like forgetting to use test_when_finished()). However, since this config setting needs to be present for only a single command, you can go even simpler by collapsing the entire test to: test_expect_success 'does not use --default when entry present' ' echo bar >expect && git -c core.foo=bar config --default baz core.foo >actual && test_cmp expect actual '