From: mhagger@alum.mit.edu
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Jeff King <peff@peff.net>,
Drew Northup <drew.northup@maine.edu>,
Jakub Narebski <jnareb@gmail.com>,
Heiko Voigt <hvoigt@hvoigt.net>,
Johan Herland <johan@herland.net>,
Julian Phillips <julian@quantumfyre.co.uk>,
Michael Haggerty <mhagger@alum.mit.edu>
Subject: [PATCH v4 0/7] Provide API to invalidate refs cache
Date: Mon, 17 Oct 2011 04:38:04 +0200 [thread overview]
Message-ID: <1318819091-7066-1-git-send-email-mhagger@alum.mit.edu> (raw)
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 reply other threads:[~2011-10-17 2:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-17 2:38 mhagger [this message]
2011-10-17 2:38 ` [PATCH v4 1/7] invalidate_ref_cache(): rename function from invalidate_cached_refs() mhagger
2011-10-17 2:38 ` [PATCH v4 2/7] invalidate_ref_cache(): take the submodule as parameter mhagger
2011-10-17 2:38 ` [PATCH v4 3/7] invalidate_ref_cache(): expose this function in the refs API mhagger
2011-10-17 2:38 ` [PATCH v4 4/7] clear_ref_cache(): rename parameter mhagger
2011-10-17 2:38 ` [PATCH v4 5/7] clear_ref_cache(): extract two new functions mhagger
2011-10-17 2:38 ` [PATCH v4 6/7] write_ref_sha1(): only invalidate the loose ref cache mhagger
2011-10-17 2:38 ` [PATCH v4 7/7] clear_ref_cache(): inline function mhagger
2011-10-17 5:40 ` [PATCH v4 0/7] Provide API to invalidate refs cache Junio C Hamano
2011-10-17 18:47 ` Heiko Voigt
2011-10-17 19:43 ` Michael Haggerty
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1318819091-7066-1-git-send-email-mhagger@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=drew.northup@maine.edu \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hvoigt@hvoigt.net \
--cc=jnareb@gmail.com \
--cc=johan@herland.net \
--cc=julian@quantumfyre.co.uk \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).