rev-list: fallback to non-bitmap traversal when filtering
commite03f928e2ab92e47467d48520a73a19582dff286
authorJeff King <peff@peff.net>
Thu, 13 Feb 2020 02:17:30 +0000 (12 21:17 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 13 Feb 2020 17:08:58 +0000 (13 09:08 -0800)
tree6cc6a118b612d332fdf32e926e4504cf2d87d931
parentacac50dd8c2c9725841b3e9143d78c6345dc076c
rev-list: fallback to non-bitmap traversal when filtering

The "--use-bitmap-index" option is usually aspirational: if we have
bitmaps and the request can be fulfilled more quickly using them we'll
do so, but otherwise fall back to a non-bitmap traversal.

The exception is object filtering, which explicitly dies if the two
options are combined. Let's convert this to the usual fallback behavior.
This is a minor convenience for now (since the caller can easily know
that --filter and --use-bitmap-index don't combine), but will become
much more useful as we start to support _some_ filters with bitmaps, but
not others.

The test infrastructure here is bigger than necessary for checking this
one small feature. But it will serve as the basis for more filtering
bitmap tests in future patches.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/rev-list.c
t/t6113-rev-list-bitmap-filters.sh [new file with mode: 0755]