Re: [PATCH 05/15] refs.c: update rename_ref to use a transaction
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 28, 2014, 19:56 UTC
- Message-ID
- <xmqqlho0j7dq.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <xmqqppdcj9m9.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 14 quoted lines
> Ronnie Sahlberg <sahlberg@google.com> 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?