Thread (192 messages) flat view 192 messages, 22 authors, 2016-08-11

Re: Thoughts about memory requirements in traversals [Was: Re: [RFC] Submodules in GIT]

From: Josef Weidendorfer <hidden>
Date: 2016-08-11 20:18:53

On Sunday 03 December 2006 12:10, Jakub Narebski wrote:
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help