On Mon, Jul 22, 2024 at 2:24 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > Eric Sunshine <ericsunshine@xxxxxxxxxxx> writes: > > A common way to work around the problem is to wrap a subshell around the > > variable assignments and function call, thus ensuring that the > > assignments are short-lived. However, these days, a more ergonomic > > approach is to employ test_env() which is tailor-made for this specific > > use-case. > > OK. I am not sure if that is "ergonomic", though. An explict > subshell has a good documentation value that even though we call > test_commit there, we do not care about the committer timestamps > subsequent commits would record, and we do not mind losing the > effect of test_tick from this invocation of test_commit. Hiding > all of that behind test_env loses the documentation value. > > We could resurrect it by explicitly passing "--no-tick" to > test_commit, though ;-). Your mention of `test_commit` reminded me that, these days, it accepts an --author switch which seems tailor-made for what this chunk of code in this test is actually checking: namely, that the root commit of the orphan branch has "Parsnip <root@xxxxxxxxxxx>" as its author. So an even simpler approach is to change it to: test_commit --author "Parsnip <root@xxxxxxxxxxx>" second-root && That conveys precisely that the test is interested in overriding the author for that one commit.