Subject: Re: [PATCH 3/3] Add filter-objects command

From: Junio C Hamano <[email-masked]>
Date: Fri, 19 Jun 2015 11:28:08 -0700

Jeff King <[email-masked]> writes:

> Right, my point was only that it works for _your_ particular
> filter, but it would be nice to have something more general. And
> we already have "cat-file --batch-check". IOW, I think I would
> prefer the "magical" form because it's a better scripting building
> block. As you note, "filter-objects" without any filters is
> exactly that. Your 10 extra lines of C code are not exactly bloat,
> but I just wonder if other people will find it all that useful.

Yup.  I do not mind a fast "enumerate all objects" but I suspect
that making "all" fast may turn out to be not so great a trade-off
after all, as you would need more work on the "now we have all
coming from our input, let's filter with this and that criteria"
downstream in general cases.  Graph-based filtering e.g. "Oops, here
is our whole customer database committed by mistake--which branch
should we rewrite to nuke?" inherently is much more costly to do in
the downstream that essentially has to reconstruct the graph around
interesting parts of the history, and is better done by "enumerate"
phase spending time to do the actual graph traversal.

And "filter-anything" should not be the name for "enumerate" command
that comes on the upstream of a pipe.  You usually call what is
downstream of a pipe "a filter".