On Thu, Oct 24, 2013 at 6:03 PM, Jeff King <p...@peff.net> wrote: > If `prepare_bitmap_walk` runs successfully, the resulting bitmap is > stored and the equivalent of a `traverse_commit_list` call can be > performed by using `traverse_bitmap_commit_list`; the bitmap version > of this call yields the objects straight from the packfile index > (without having to look them up or parse them) and hence is several > orders of magnitude faster.
This is interesting, we didn't attempt it in JGit, but I can see how it could be very useful. > As an extra optimization, when `prepare_bitmap_walk` succeeds, the > `reuse_partial_packfile_from_bitmap` call can be attempted: it will find > the amount of objects at the beginning of the on-disk packfile that can > be reused as-is, and return an offset into the packfile. The source > packfile can then be loaded and the bytes up to `offset` can be written > directly to the result without having to consider the entires inside the > packfile individually. Yay! This is similar to the optimization we use in JGit to send the entire pack, but the part about sending a leading prefix is new. Do you have any data showing how well this works in practice for cases where offset is before than length-20? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html