aboutsummaryrefslogtreecommitdiff
path: root/repack-midx.c
diff options
context:
space:
mode:
Diffstat (limited to 'repack-midx.c')
-rw-r--r--repack-midx.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/repack-midx.c b/repack-midx.c
index 6f6202c5bc..0682b80c42 100644
--- a/repack-midx.c
+++ b/repack-midx.c
@@ -16,25 +16,23 @@ struct midx_snapshot_ref_data {
int preferred;
};
-static int midx_snapshot_ref_one(const char *refname UNUSED,
- const char *referent UNUSED,
- const struct object_id *oid,
- int flag UNUSED, void *_data)
+static int midx_snapshot_ref_one(const struct reference *ref, void *_data)
{
struct midx_snapshot_ref_data *data = _data;
+ const struct object_id *maybe_peeled = ref->oid;
struct object_id peeled;
- if (!peel_iterated_oid(data->repo, oid, &peeled))
- oid = &peeled;
+ if (!reference_get_peeled_oid(data->repo, ref, &peeled))
+ maybe_peeled = &peeled;
- if (oidset_insert(&data->seen, oid))
+ if (oidset_insert(&data->seen, maybe_peeled))
return 0; /* already seen */
- if (odb_read_object_info(data->repo->objects, oid, NULL) != OBJ_COMMIT)
+ if (odb_read_object_info(data->repo->objects, maybe_peeled, NULL) != OBJ_COMMIT)
return 0;
fprintf(data->f->fp, "%s%s\n", data->preferred ? "+" : "",
- oid_to_hex(oid));
+ oid_to_hex(maybe_peeled));
return 0;
}
@@ -42,7 +40,6 @@ static int midx_snapshot_ref_one(const char *refname UNUSED,
void midx_snapshot_refs(struct repository *repo, struct tempfile *f)
{
struct midx_snapshot_ref_data data;
- const struct string_list *preferred = bitmap_preferred_tips(repo);
data.repo = repo;
data.f = f;
@@ -53,16 +50,9 @@ void midx_snapshot_refs(struct repository *repo, struct tempfile *f)
die(_("could not open tempfile %s for writing"),
get_tempfile_path(f));
- if (preferred) {
- struct string_list_item *item;
-
- data.preferred = 1;
- for_each_string_list_item(item, preferred)
- refs_for_each_ref_in(get_main_ref_store(repo),
- item->string,
- midx_snapshot_ref_one, &data);
- data.preferred = 0;
- }
+ data.preferred = 1;
+ for_each_preferred_bitmap_tip(repo, midx_snapshot_ref_one, &data);
+ data.preferred = 0;
refs_for_each_ref(get_main_ref_store(repo),
midx_snapshot_ref_one, &data);