mirror of
https://github.com/git/git.git
synced 2026-01-09 17:46:37 +00:00
packfile: introduce macro to iterate through packs
We have a bunch of different sites that want to iterate through all packs of a given `struct packfile_store`. This pattern is somewhat verbose and repetitive, which makes it somewhat cumbersome. Introduce a new macro `repo_for_each_pack()` that removes some of the boilerplate. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
5b410c8276
commit
86d8c62f48
@@ -39,11 +39,12 @@ int cmd__find_pack(int argc, const char **argv)
|
||||
if (repo_get_oid(the_repository, argv[0], &oid))
|
||||
die("cannot parse %s as an object name", argv[0]);
|
||||
|
||||
for (p = packfile_store_get_all_packs(the_repository->objects->packfiles); p; p = p->next)
|
||||
repo_for_each_pack(the_repository, p) {
|
||||
if (find_pack_entry_one(&oid, p)) {
|
||||
printf("%s\n", p->pack_name);
|
||||
actual_count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (count > -1 && count != actual_count)
|
||||
die("bad packfile count %d instead of %d", actual_count, count);
|
||||
|
||||
@@ -37,7 +37,7 @@ int cmd__pack_mtimes(int argc, const char **argv)
|
||||
if (argc != 2)
|
||||
usage(pack_mtimes_usage);
|
||||
|
||||
for (p = packfile_store_get_all_packs(the_repository->objects->packfiles); p; p = p->next) {
|
||||
repo_for_each_pack(the_repository, p) {
|
||||
strbuf_addstr(&buf, basename(p->pack_name));
|
||||
strbuf_strip_suffix(&buf, ".pack");
|
||||
strbuf_addstr(&buf, ".mtimes");
|
||||
|
||||
Reference in New Issue
Block a user