On Thu, Jun 7, 2018 at 4:03 PM, Derrick Stolee <[email protected]> wrote:
> @@ -114,14 +119,56 @@ int write_midx_file(const char *object_dir)
> midx_name);
> }
>
> + strbuf_addf(&pack_dir, "%s/pack", object_dir);
> + dir = opendir(pack_dir.buf);
> +
> + if (!dir) {
> + error_errno("unable to open pack directory: %s",
> + pack_dir.buf);
_()
> + strbuf_release(&pack_dir);
> + return 1;
> + }
> +
> + strbuf_addch(&pack_dir, '/');
> + pack_dir_len = pack_dir.len;
> + ALLOC_ARRAY(packs, alloc_packs);
> + while ((de = readdir(dir)) != NULL) {
> + if (is_dot_or_dotdot(de->d_name))
> + continue;
> +
> + if (ends_with(de->d_name, ".idx")) {
> + ALLOC_GROW(packs, nr_packs + 1, alloc_packs);
> +
> + strbuf_setlen(&pack_dir, pack_dir_len);
> + strbuf_addstr(&pack_dir, de->d_name);
> +
> + packs[nr_packs] = add_packed_git(pack_dir.buf,
> + pack_dir.len,
> + 0);
> + if (!packs[nr_packs])
> + warning("failed to add packfile '%s'",
> + pack_dir.buf);
> + else
> + nr_packs++;
> + }
> + }
> + closedir(dir);
> + strbuf_release(&pack_dir);
Can we refactor and share this scanning-for-packs code with
packfile.c? I'm pretty sure it does something similar in there.
> - write_midx_header(f, num_chunks, num_packs);
> + write_midx_header(f, num_chunks, nr_packs);
Hmm.. could have stuck to one name from the beginning...
--
Duy