On 05/17/2017 03:19 PM, Jeff King wrote: > On Wed, May 17, 2017 at 02:05:34PM +0200, Michael Haggerty wrote: > >> Extract function from `files_transaction_commit()`. It will soon have >> another caller. >> [...] >> @@ -2868,10 +2889,8 @@ static int files_transaction_commit(struct ref_store *ref_store, >> if (transaction->state != REF_TRANSACTION_OPEN) >> die("BUG: commit called for transaction that is not open"); >> >> - if (!transaction->nr) { >> - transaction->state = REF_TRANSACTION_CLOSED; >> - return 0; >> - } >> + if (!transaction->nr) >> + goto cleanup; > > This is slightly more than it says on the tin. I guess the reason is > that the cleanup function is going to learn about more than just > iterating over the transaction, and we'll want to trigger it even for > empty transactions. Mostly this is just DRY. For example, later the cleanup will be changed to set the state to `REF_TRANSACTION_PREPARED` rather than `REF_TRANSACTION_CLOSED`, and that change will be able to be made in one place rather than two. I'll mention this in the commit message. Michael