From: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>,
GIT Mailing-list <git@vger.kernel.org>
Subject: Re: [PATCH] object: make add_object_array_with_mode a static function
Date: Sun, 19 Oct 2014 11:21:30 +0100 [thread overview]
Message-ID: <544390AA.5000406@ramsay1.demon.co.uk> (raw)
In-Reply-To: <20141019020319.GB17908@peff.net>
On 19/10/14 03:03, Jeff King wrote:
> On Sun, Oct 19, 2014 at 12:19:07AM +0100, Ramsay Jones wrote:
>
[snip]
> I actually wondered while writing this series whether anyone actually
> _uses_ the mode in object_array (the new code I added sets it to the
> appropriate value to be on the safe side, but traverse_commit_list does
> not actually care about it).
>
> Digging in the history, it looks like it is used for blob-to-blob diffs
> (see 01618a3, "use mode of the tree in git-diff, if <tree>:<file> syntax
> is used", 2007-04-22). And that still seems to be the case today. It's a
> shame we have to keep such complication around for one single case
> (especially because getting it wrong in other cases is likely to go
> unnoticed for years), but I think it would probably require major
> surgery to extract it.
>
> I think we can take your patch a step further, though, like:
Yes, I'm always in favour of removing unused code! :-D
>
> -- >8 --
> Subject: [PATCH] drop add_object_array_with_mode
>
> This is a thin compatibility wrapper around
> add_pending_object_with_path. But the only caller is
> add_object_array, which is itself just a thin compatibility
> wrapper. There are no external callers, so we can just
> remove this middle wrapper.
>
> Noticed-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> I also wondered if add_pending_object_with_mode could get the same
> treatment. But we _do_ use it in setup_revisions and friends when we
> parse something like "HEAD:foo". It would be trivial here to call
> add_pending_object_with_path instead, and actually feed "foo". That
> would mean that "git rev-list --objects HEAD:foo" reported the pathname
> "foo" alongside the object. Or if "foo" is a tree, all of its sub-parts
> would be "foo/whatever" instead of just "whatever". That seems somewhat
> sensible to me, but I would be unsurprised if it broke some weird corner
> case that is expecting paths to be relative to the given tree.
>
> object.c | 7 +------
> object.h | 1 -
> 2 files changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/object.c b/object.c
> index df86bdd..23d6c96 100644
> --- a/object.c
> +++ b/object.c
> @@ -341,12 +341,7 @@ void add_object_array_with_path(struct object *obj, const char *name,
>
> void add_object_array(struct object *obj, const char *name, struct object_array *array)
> {
> - add_object_array_with_mode(obj, name, array, S_IFINVALID);
> -}
> -
> -void add_object_array_with_mode(struct object *obj, const char *name, struct object_array *array, unsigned mode)
> -{
> - add_object_array_with_path(obj, name, array, mode, NULL);
> + add_object_array_with_path(obj, name, array, S_IFINVALID, NULL);
> }
>
> /*
> diff --git a/object.h b/object.h
> index e5178a5..6416247 100644
> --- a/object.h
> +++ b/object.h
> @@ -114,7 +114,6 @@ int object_list_contains(struct object_list *list, struct object *obj);
>
> /* Object array handling .. */
> void add_object_array(struct object *obj, const char *name, struct object_array *array);
> -void add_object_array_with_mode(struct object *obj, const char *name, struct object_array *array, unsigned mode);
> void add_object_array_with_path(struct object *obj, const char *name, struct object_array *array, unsigned mode, const char *path);
>
> typedef int (*object_array_each_func_t)(struct object_array_entry *, void *);
>
Yep, this is a better patch.
Thanks!
ATB,
Ramsay Jones
next prev parent reply other threads:[~2014-10-19 10:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-18 23:19 [PATCH] object: make add_object_array_with_mode a static function Ramsay Jones
2014-10-19 2:03 ` Jeff King
2014-10-19 10:21 ` Ramsay Jones [this message]
2014-10-20 16:21 ` Junio C Hamano
2014-10-20 17:03 ` Jeff King
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=544390AA.5000406@ramsay1.demon.co.uk \
--to=ramsay@ramsay1.demon.co.uk \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--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).