Subject: Re: [PATCH 05/15] refs.c: update rename_ref to use a transaction

From: Junio C Hamano <[email-masked]>
Date: Tue, 28 Oct 2014 12:56:17 -0700

Junio C Hamano <[email-masked]> writes:

> Ronnie Sahlberg <[email-masked]> writes:
>
>> commit 0295e9cebc41020ee84da275549b164a8770ffba upstream.
>>
>> Change refs.c to use a single transaction to copy/rename both the refs and
>> its reflog. Since we are no longer using rename() to move the reflog file
>> we no longer need to disallow rename_ref for refs with a symlink for its
>> reflog so we can remove that test from the testsuite.
>
> Do you mean that we used to do a single rename(2) to move the entire
> logfile, but now you copy potentially thousands of reflog entries
> one by one?
>
> Hmmmm,... is that an improvement?

I see some value in "keep the original while creating a new one,
just in case we fail to fully recreate the new one so that we can
roll back with less programming effort".  But still, we should be
able to copy the original to new without parsing and reformatting
each and every entry, no?