On 10/6/2021 3:17 PM, Junio C Hamano wrote: > "Phillip Wood via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: >> @@ -907,6 +917,9 @@ void cache_tree_verify(struct repository *r, struct index_state *istate) >> >> if (!istate->cache_tree) >> return; >> - verify_one(r, istate, istate->cache_tree, &path); >> + if (verify_one(r, istate, istate->cache_tree, &path)) { >> + strbuf_reset(&path); >> + verify_one(r, istate, istate->cache_tree, &path); >> + } >> strbuf_release(&path); >> } > > This is just a style thing, but I would find it easier to follow if > it just recursed into itself, i.e. > > - verify_one(...); > + if (verify_one(...)) > + cache_tree_verify(r, istate); > > or > > - verify_one(...); > + again: > + if (verify_one(...)) > + strbuf_reset(&path); > + goto again; > } } > > On the other hand, if the new code wants to say "I would retry at > most once, otherwise there is something wrong in me", then > >> - verify_one(r, istate, istate->cache_tree, &path); >> + if (verify_one(r, istate, istate->cache_tree, &path)) { >> + strbuf_reset(&path); >> + if (verify_one(r, istate, istate->cache_tree, &path)) >> + BUG("..."); >> + } > > would be better. I'm in favor of this second option. Thanks, -Stolee