git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Enumerating reflog entries in a wrong order
@ 2013-03-08 21:53 Junio C Hamano
  2013-03-08 21:53 ` [PATCH 1/3] for_each_reflog_ent(): extract a helper to process a single entry Junio C Hamano
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Junio C Hamano @ 2013-03-08 21:53 UTC (permalink / raw)
  To: git

The for_each_reflog_ent() function yields reflog entries from the
oldest to newer, and is inefficient when we know what we are looking
for are near the newest end (e.g. "find the nth newest reflog entry
that matches 'checkout: moving from X to Y'").  To optimize for the
common case, we introduced for_each_recent_reflog_ent() to scan only
the newest part (i.e. tail) of the reflog file, but it is difficult
to use this function correctly.

Just bite the bullet and stop working around the API that reads the
file in a wrong order.  The new for_each_reflog_ent_reverse()
function gives us reflog entries from the newest to older.

Junio C Hamano (3):
  for_each_reflog_ent(): extract a helper to process a single entry
  for_each_recent_reflog_ent(): simplify opening of a reflog file
  reflog: add for_each_reflog_ent_reverse() API

 refs.c      | 161 +++++++++++++++++++++++++++++++++++++++++++-----------------
 refs.h      |   2 +-
 sha1_name.c |  48 +++++++-----------
 3 files changed, 134 insertions(+), 77 deletions(-)

-- 
1.8.2-rc3-189-g94c4d42

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-03-08 21:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-08 21:53 [PATCH 0/3] Enumerating reflog entries in a wrong order Junio C Hamano
2013-03-08 21:53 ` [PATCH 1/3] for_each_reflog_ent(): extract a helper to process a single entry Junio C Hamano
2013-03-08 21:53 ` [PATCH 2/3] for_each_recent_reflog_ent(): simplify opening of a reflog file Junio C Hamano
2013-03-08 21:53 ` [PATCH 3/3] reflog: add for_each_reflog_ent_reverse() API Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).