On Sunday 03 December 2006 12:10, Jakub Narebski wrote: > > You simply sequentially renumber any object SHA, starting from 0 > > in the order you see them. You can do two renumberings, one for > > the objects contained in the original pack (1), and one for the > > external ones (2). Put these new numbers (with a bit distinguishing > > (1) and (2)) as replacement into commit/tree objects. > > At the end, you have the new offsets for objects in (1). Put > > redirection tables for (1) [new number -> new offset] > > and (2) [other new number->SHA1 of external object] at the end > > of the new pack. > > Doesn't this idea clash with the object and delta reusing for repack? In general, yes: you modify object content by encoding, and if you want to reuse the objects without decompression, and need to keep the info to be able to decode, ie. the redirection table. This gets problematic if you want to join multiple packs, or fetch objects and want to reuse the compressed representation, as the object renumbering is only local to one pack, and numbers can be reused between packs. So this idea is probably for archival packs only. Josef - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html