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

[PATCH v4 0/7] Provide API to invalidate refs cache

From
mhagger@alum.mit.edu <mhagger@alum.mit.edu>
Date
Oct 17, 2011, 02:38 UTC
Message-ID
<1318819091-7066-1-git-send-email-mhagger@alum.mit.edu>
From: Michael Haggerty <mhagger@alum.mit.edu>

These patches are re-rolled onto the current master and incorporate Junio's suggestion to rename "struct cached_refs" to "ref_cache".

This patch series provides an API for external code to invalidate the ref cache that is used internally to refs.c. It also allows code *within* refs.c to invalidate only the packed or only the loose refs for a module/submodule.

IMPORTANT:

I won't myself have time to figure out who, outside of refs.c, has to *call* invalidate_ref_cache(). The candidates that I know off the top of my head are git-clone, git-submodule [1], and git-pack-refs. It would be great if experts in those areas would insert calls to invalidate_ref_cache() where needed.

Even better would be if the meddlesome code were changed to use the refs API. I'd be happy to help expanding the refs API if needed to accommodate your needs.

This is why the API for invalidating only packed or loose refs is private. After code outside refs.c is changed to use the refs API, it will get the optimal behavior for free (and at that time invalidate_ref_cache() can be removed again).

[1] http://marc.info/?l=git&m=131827641227965&w=2
    In this mailing list thread, Heiko Voigt stated that git-submodule
    does not modify any references, so it should not have to use the
    API.
Michael Haggerty (7):
  invalidate_ref_cache(): rename function from invalidate_cached_refs()
  invalidate_ref_cache(): take the submodule as parameter
  invalidate_ref_cache(): expose this function in the refs API
  clear_ref_cache(): rename parameter
  clear_ref_cache(): extract two new functions
  write_ref_sha1(): only invalidate the loose ref cache
  clear_ref_cache(): inline function
 refs.c |   59 +++++++++++++++++++++++++++++++----------------------------
 refs.h |    8 ++++++++
 2 files changed, 39 insertions(+), 28 deletions(-)
-- 
1.7.7.rc2
Next: mhagger@alum.mit.edu
Message 1 of 11 in “Provide API to invalidate refs cache”
  1. 0/7 Provide API to invalidate refs cachemhagger@alum.mit.edu, Oct 17, 2011
  2. 1/7 invalidate_ref_cache(): rename function from invalidate_cached_refs()mhagger@alum.mit.edu, Oct 17, 2011
  3. 2/7 invalidate_ref_cache(): take the submodule as parametermhagger@alum.mit.edu, Oct 17, 2011
  4. 3/7 invalidate_ref_cache(): expose this function in the refs APImhagger@alum.mit.edu, Oct 17, 2011
  5. 4/7 clear_ref_cache(): rename parametermhagger@alum.mit.edu, Oct 17, 2011
  6. 5/7 clear_ref_cache(): extract two new functionsmhagger@alum.mit.edu, Oct 17, 2011
  7. 6/7 write_ref_sha1(): only invalidate the loose ref cachemhagger@alum.mit.edu, Oct 17, 2011
  8. 7/7 clear_ref_cache(): inline functionmhagger@alum.mit.edu, Oct 17, 2011
  9. Junio C HamanoOct 17, 2011
  10. Heiko VoigtOct 17, 2011
  11. Michael HaggertyOct 17, 2011

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.