git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/3] Enumerating reflog entries in a wrong order

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 8, 2013, 21:53 UTC
Message-ID
<1362779624-15513-1-git-send-email-gitster@pobox.com>

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
Next: Junio C Hamano
Message 1 of 4 in “Enumerating reflog entries in a wrong order”
  1. 0/3 Enumerating reflog entries in a wrong orderJunio C Hamano, Mar 8, 2013
  2. 1/3 for_each_reflog_ent(): extract a helper to process a single entryJunio C Hamano, Mar 8, 2013
  3. 2/3 for_each_recent_reflog_ent(): simplify opening of a reflog fileJunio C Hamano, Mar 8, 2013
  4. 3/3 reflog: add for_each_reflog_ent_reverse() APIJunio C Hamano, Mar 8, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.