From: Junio C Hamano <gitster@pobox.com>
To: Michael Haggerty <mhagger@alum.mit.edu>
Cc: Jeff King <peff@peff.net>, Nicolas Pitre <nico@fluxnic.net>,
git@vger.kernel.org
Subject: Re: [PATCH 1/6] Add docstrings for lookup_replace_object() and do_lookup_replace_object()
Date: Fri, 21 Feb 2014 10:21:20 -0800 [thread overview]
Message-ID: <xmqqios8499b.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1393000327-11402-2-git-send-email-mhagger@alum.mit.edu> (Michael Haggerty's message of "Fri, 21 Feb 2014 17:32:02 +0100")
Michael Haggerty <mhagger@alum.mit.edu> writes:
> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
> ---
> cache.h | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/cache.h b/cache.h
> index dc040fb..0ecd1c8 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -788,13 +788,29 @@ static inline void *read_sha1_file(const unsigned char *sha1, enum object_type *
> {
> return read_sha1_file_extended(sha1, type, size, LOOKUP_REPLACE_OBJECT);
> }
> +
> +/*
> + * If a replacement for object sha1 has been set up, return the
> + * replacement object's name (replaced recursively, if necessary).
> + * The return value is either sha1 or a pointer to a
> + * permanently-allocated value. This function always respects replace
> + * references, regardless of the value of check_replace_refs.
> + */
> extern const unsigned char *do_lookup_replace_object(const unsigned char *sha1);
> +
> +/*
> + * If object sha1 should be replaced, return the replacement object's
> + * name. This function is similar to do_lookup_replace_object(),
> + * except that it when object replacement is suppressed, it always
> + * returns its argument unchanged.
> + */
> static inline const unsigned char *lookup_replace_object(const unsigned char *sha1)
> {
> if (!read_replace_refs)
> return sha1;
> return do_lookup_replace_object(sha1);
> }
> +
> static inline const unsigned char *lookup_replace_object_extended(const unsigned char *sha1, unsigned flag)
> {
> if (!(flag & LOOKUP_REPLACE_OBJECT))
The above description is good, but after reading e1111cef (inline
lookup_replace_object() calls, 2011-05-15) that introduced this
ugliness, I have to wonder if do_lookup_replace(), which nobody
except lookup_replace_object() ever calls, is better removed from
the public API, making lookup_replace_object() an extern definition.
We do name functions that are purely helpers that are internal
implementation detals of the API as "do_blah", but exporting that
kind of name as if that is part of the API people are expected to
call feels very wrong.
next prev parent reply other threads:[~2014-02-21 18:21 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-21 16:32 [PATCH 0/6] Add a bunch of docstrings and make a few minor cleanups Michael Haggerty
2014-02-21 16:32 ` [PATCH 1/6] Add docstrings for lookup_replace_object() and do_lookup_replace_object() Michael Haggerty
2014-02-21 18:21 ` Junio C Hamano [this message]
2014-02-24 8:25 ` Michael Haggerty
2014-02-24 9:24 ` Christian Couder
2014-02-24 10:17 ` Michael Haggerty
2014-02-24 18:06 ` Junio C Hamano
2014-02-21 16:32 ` [PATCH 2/6] replace_object: use struct members instead of an array Michael Haggerty
2014-02-21 18:23 ` Junio C Hamano
2014-02-21 16:32 ` [PATCH 3/6] find_pack_entry(): document last_found_pack Michael Haggerty
2014-02-21 17:15 ` Nicolas Pitre
2014-02-21 16:32 ` [PATCH 4/6] sha1_file_name(): declare to return a const string Michael Haggerty
2014-02-21 16:32 ` [PATCH 5/6] Document a bunch of functions defined in sha1_file.c Michael Haggerty
2014-02-21 17:17 ` Nicolas Pitre
2014-02-24 18:18 ` Jakub Narębski
2014-02-24 20:01 ` Michael Haggerty
2014-02-24 20:08 ` Jonathan Nieder
2014-02-25 15:23 ` Michael Haggerty
2014-02-21 16:32 ` [PATCH 6/6] Document some functions defined in object.c Michael Haggerty
2014-02-21 17:33 ` Nicolas Pitre
2014-02-24 8:47 ` Michael Haggerty
2014-02-24 17:12 ` Junio C Hamano
2014-02-24 17:58 ` [PATCH 0/6] Add a bunch of docstrings and make a few minor cleanups Junio C Hamano
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=xmqqios8499b.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=mhagger@alum.mit.edu \
--cc=nico@fluxnic.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.