MCPcopy Create free account
hub / github.com/git/git / packfile_store_for_each_object

Function packfile_store_for_each_object

packfile.c:2555–2608  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2553}
2554
2555int packfile_store_for_each_object(struct packfile_store *store,
2556 const struct object_info *request,
2557 odb_for_each_object_cb cb,
2558 void *cb_data,
2559 const struct odb_for_each_object_options *opts)
2560{
2561 struct packfile_store_for_each_object_wrapper_data data = {
2562 .store = store,
2563 .request = request,
2564 .cb = cb,
2565 .cb_data = cb_data,
2566 };
2567 struct packfile_list_entry *e;
2568 int pack_errors = 0, ret;
2569
2570 if (opts->prefix)
2571 return packfile_store_for_each_prefixed_object(store, opts, &data);
2572
2573 store->skip_mru_updates = true;
2574
2575 for (e = packfile_store_get_packs(store); e; e = e->next) {
2576 struct packed_git *p = e->pack;
2577
2578 if ((opts->flags & ODB_FOR_EACH_OBJECT_LOCAL_ONLY) && !p->pack_local)
2579 continue;
2580 if ((opts->flags & ODB_FOR_EACH_OBJECT_PROMISOR_ONLY) &&
2581 !p->pack_promisor)
2582 continue;
2583 if ((opts->flags & ODB_FOR_EACH_OBJECT_SKIP_IN_CORE_KEPT_PACKS) &&
2584 p->pack_keep_in_core)
2585 continue;
2586 if ((opts->flags & ODB_FOR_EACH_OBJECT_SKIP_ON_DISK_KEPT_PACKS) &&
2587 p->pack_keep)
2588 continue;
2589 if (open_pack_index(p)) {
2590 pack_errors = 1;
2591 continue;
2592 }
2593
2594 ret = for_each_object_in_pack(p, packfile_store_for_each_object_wrapper,
2595 &data, opts->flags);
2596 if (ret)
2597 goto out;
2598 }
2599
2600 ret = 0;
2601
2602out:
2603 store->skip_mru_updates = false;
2604
2605 if (!ret && pack_errors)
2606 ret = -1;
2607 return ret;
2608}
2609
2610static int extend_abbrev_len(const struct object_id *a,
2611 const struct object_id *b,

Callers 4

fill_oids_from_all_packsFunction · 0.85
batch_each_objectFunction · 0.85

Calls 4

packfile_store_get_packsFunction · 0.85
open_pack_indexFunction · 0.85
for_each_object_in_packFunction · 0.85

Tested by

no test coverage detected