Re: [PATCH 3/6] introduce pack metadata cache files
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Jan 30, 2013, 01:30 UTC
- Message-ID
- <CACsJy8Af9g9Tdqr0dXyucq-M2aP5U2HvX3ANSsabqtuX=w4Q0w@mail.gmail.com>
- In-Reply-To
- <20130129091555.GC9999@sigill.intra.peff.net>
On Tue, Jan 29, 2013 at 4:15 PM, Jeff King <peff@peff.net> wrote:
Show 11 quoted lines
> +static void write_meta_header(struct metapack_writer *mw, const char *id,
> + uint32_t version)
> +{
> + version = htonl(version);
> +
> + sha1write(mw->out, "META", 4);
> + sha1write(mw->out, "\0\0\0\1", 4);
> + sha1write(mw->out, mw->pack->sha1, 20);
> + sha1write(mw->out, id, 4);
> + sha1write(mw->out, &version, 4);
> +}Because you go with all-commit-info-in-one-file, perhaps we should have an uint32_t bitmap to describe what info this cache contains? So far we need 4 bits for date, tree, 1st and 2nd parents (yes, I still want to check if storing 1-parent commits only gains us anything on some other repos). When commit count comes, it can take the fifth bit. Reachability bitmap offsets can take the sixth bit, if we just append the bitmaps at the end of the same file.
-- Duy