зеркало из https://github.com/microsoft/git.git
pack-bitmap: drop filter in prepare_bitmap_walk()
Now that all consumers of prepare_bitmap_walk() have populated the 'filter' member of 'struct rev_info', we can drop that extra parameter from the method and access it directly from the 'struct rev_info'. Signed-off-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
7940941de1
Коммит
09d4a79eff
|
@ -3651,7 +3651,7 @@ static int pack_options_allow_reuse(void)
|
|||
|
||||
static int get_object_list_from_bitmap(struct rev_info *revs)
|
||||
{
|
||||
if (!(bitmap_git = prepare_bitmap_walk(revs, &revs->filter, 0)))
|
||||
if (!(bitmap_git = prepare_bitmap_walk(revs, 0)))
|
||||
return -1;
|
||||
|
||||
if (pack_options_allow_reuse() &&
|
||||
|
|
|
@ -434,8 +434,7 @@ static int try_bitmap_count(struct rev_info *revs,
|
|||
*/
|
||||
max_count = revs->max_count;
|
||||
|
||||
bitmap_git = prepare_bitmap_walk(revs, &revs->filter,
|
||||
filter_provided_objects);
|
||||
bitmap_git = prepare_bitmap_walk(revs, filter_provided_objects);
|
||||
if (!bitmap_git)
|
||||
return -1;
|
||||
|
||||
|
@ -463,8 +462,7 @@ static int try_bitmap_traversal(struct rev_info *revs,
|
|||
if (revs->max_count >= 0)
|
||||
return -1;
|
||||
|
||||
bitmap_git = prepare_bitmap_walk(revs, &revs->filter,
|
||||
filter_provided_objects);
|
||||
bitmap_git = prepare_bitmap_walk(revs, filter_provided_objects);
|
||||
if (!bitmap_git)
|
||||
return -1;
|
||||
|
||||
|
@ -481,7 +479,7 @@ static int try_bitmap_disk_usage(struct rev_info *revs,
|
|||
if (!show_disk_usage)
|
||||
return -1;
|
||||
|
||||
bitmap_git = prepare_bitmap_walk(revs, &revs->filter, filter_provided_objects);
|
||||
bitmap_git = prepare_bitmap_walk(revs, filter_provided_objects);
|
||||
if (!bitmap_git)
|
||||
return -1;
|
||||
|
||||
|
|
|
@ -739,8 +739,7 @@ static int add_commit_to_bitmap(struct bitmap_index *bitmap_git,
|
|||
static struct bitmap *find_objects(struct bitmap_index *bitmap_git,
|
||||
struct rev_info *revs,
|
||||
struct object_list *roots,
|
||||
struct bitmap *seen,
|
||||
struct list_objects_filter_options *filter)
|
||||
struct bitmap *seen)
|
||||
{
|
||||
struct bitmap *base = NULL;
|
||||
int needs_walk = 0;
|
||||
|
@ -823,7 +822,7 @@ static struct bitmap *find_objects(struct bitmap_index *bitmap_git,
|
|||
show_data.bitmap_git = bitmap_git;
|
||||
show_data.base = base;
|
||||
|
||||
traverse_commit_list_filtered(filter, revs,
|
||||
traverse_commit_list_filtered(&revs->filter, revs,
|
||||
show_commit, show_object,
|
||||
&show_data, NULL);
|
||||
|
||||
|
@ -1219,7 +1218,6 @@ static int can_filter_bitmap(struct list_objects_filter_options *filter)
|
|||
}
|
||||
|
||||
struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
|
||||
struct list_objects_filter_options *filter,
|
||||
int filter_provided_objects)
|
||||
{
|
||||
unsigned int i;
|
||||
|
@ -1240,7 +1238,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
|
|||
if (revs->prune)
|
||||
return NULL;
|
||||
|
||||
if (!can_filter_bitmap(filter))
|
||||
if (!can_filter_bitmap(&revs->filter))
|
||||
return NULL;
|
||||
|
||||
/* try to open a bitmapped pack, but don't parse it yet
|
||||
|
@ -1297,8 +1295,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
|
|||
|
||||
if (haves) {
|
||||
revs->ignore_missing_links = 1;
|
||||
haves_bitmap = find_objects(bitmap_git, revs, haves, NULL,
|
||||
filter);
|
||||
haves_bitmap = find_objects(bitmap_git, revs, haves, NULL);
|
||||
reset_revision_walk();
|
||||
revs->ignore_missing_links = 0;
|
||||
|
||||
|
@ -1306,8 +1303,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
|
|||
BUG("failed to perform bitmap walk");
|
||||
}
|
||||
|
||||
wants_bitmap = find_objects(bitmap_git, revs, wants, haves_bitmap,
|
||||
filter);
|
||||
wants_bitmap = find_objects(bitmap_git, revs, wants, haves_bitmap);
|
||||
|
||||
if (!wants_bitmap)
|
||||
BUG("failed to perform bitmap walk");
|
||||
|
@ -1315,8 +1311,10 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
|
|||
if (haves_bitmap)
|
||||
bitmap_and_not(wants_bitmap, haves_bitmap);
|
||||
|
||||
filter_bitmap(bitmap_git, (filter && filter_provided_objects) ? NULL : wants,
|
||||
wants_bitmap, filter);
|
||||
filter_bitmap(bitmap_git,
|
||||
(revs->filter.choice && filter_provided_objects) ? NULL : wants,
|
||||
wants_bitmap,
|
||||
&revs->filter);
|
||||
|
||||
bitmap_git->result = wants_bitmap;
|
||||
bitmap_git->haves = haves_bitmap;
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
struct commit;
|
||||
struct repository;
|
||||
struct rev_info;
|
||||
struct list_objects_filter_options;
|
||||
|
||||
static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'};
|
||||
|
||||
|
@ -54,7 +53,6 @@ void test_bitmap_walk(struct rev_info *revs);
|
|||
int test_bitmap_commits(struct repository *r);
|
||||
int test_bitmap_hashes(struct repository *r);
|
||||
struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
|
||||
struct list_objects_filter_options *filter,
|
||||
int filter_provided_objects);
|
||||
uint32_t midx_preferred_pack(struct bitmap_index *bitmap_git);
|
||||
int reuse_partial_packfile_from_bitmap(struct bitmap_index *,
|
||||
|
|
|
@ -205,7 +205,7 @@ void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
|
|||
cp.progress = progress;
|
||||
cp.count = 0;
|
||||
|
||||
bitmap_git = prepare_bitmap_walk(revs, NULL, 0);
|
||||
bitmap_git = prepare_bitmap_walk(revs, 0);
|
||||
if (bitmap_git) {
|
||||
traverse_bitmap_commit_list(bitmap_git, revs, mark_object_seen);
|
||||
free_bitmap_index(bitmap_git);
|
||||
|
|
Загрузка…
Ссылка в новой задаче