mirror of
https://github.com/git/git.git
synced 2026-01-11 13:23:12 +09:00
Merge branch 'jk/cat-file-avoid-bitmap-when-unneeded' into jch
Fix for a performance regression in "git cat-file". * jk/cat-file-avoid-bitmap-when-unneeded: cat-file: only use bitmaps when filtering
This commit is contained in:
commit
71f9facd0b
@ -845,12 +845,14 @@ static void batch_each_object(struct batch_options *opt,
|
||||
.callback = callback,
|
||||
.payload = _payload,
|
||||
};
|
||||
struct bitmap_index *bitmap = prepare_bitmap_git(the_repository);
|
||||
struct bitmap_index *bitmap = NULL;
|
||||
|
||||
for_each_loose_object(the_repository->objects, batch_one_object_loose, &payload, 0);
|
||||
|
||||
if (bitmap && !for_each_bitmapped_object(bitmap, &opt->objects_filter,
|
||||
batch_one_object_bitmapped, &payload)) {
|
||||
if (opt->objects_filter.choice != LOFC_DISABLED &&
|
||||
(bitmap = prepare_bitmap_git(the_repository)) &&
|
||||
!for_each_bitmapped_object(bitmap, &opt->objects_filter,
|
||||
batch_one_object_bitmapped, &payload)) {
|
||||
struct packed_git *pack;
|
||||
|
||||
repo_for_each_pack(the_repository, pack) {
|
||||
|
||||
@ -9,4 +9,18 @@ test_perf 'cat-file --batch-check' '
|
||||
git cat-file --batch-all-objects --batch-check
|
||||
'
|
||||
|
||||
test_perf 'list all objects (sorted)' '
|
||||
git cat-file --batch-all-objects --batch-check="%(objectname)"
|
||||
'
|
||||
|
||||
test_perf 'list all objects (unsorted)' '
|
||||
git cat-file --batch-all-objects --batch-check="%(objectname)" \
|
||||
--unordered
|
||||
'
|
||||
|
||||
test_perf 'list blobs' '
|
||||
git cat-file --batch-all-objects --batch-check="%(objectname)" \
|
||||
--unordered --filter=object:type=blob
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user