You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment elfshaker pack will bail out if an existing non-loose pack is included in the new pack. However, this could support repacking behaviour fairly easily. I imagine introducing a 'function' which returns the bytes of the underlying object, which will get fed into create_pack. For loose objects this will return a file handle. For packed objects, maybe we should first decompress the pack to disk, then return handles spanning regions of the pack file. I'm imagining that this could be implemented using read_at-like functionality.
If we assume the decompressed pack fits in memory, that could be another quick route to implementing this for now.
The text was updated successfully, but these errors were encountered:
Another route would be to introduce 'elfshaker shake', (which is too tempting), which would write all the loose objects into the store. Then all the existing logic would work. This would come at a minor performance/disk space cost.
Another possibility is to take advantage of the fact that we use a sort-by-size heuristic, and if we maintain that heuristic it would be possible to merge two packs by zipping them as they are decompressed.
At the moment
elfshaker pack
will bail out if an existing non-loose pack is included in the new pack. However, this could support repacking behaviour fairly easily. I imagine introducing a 'function' which returns the bytes of the underlying object, which will get fed into create_pack. For loose objects this will return a file handle. For packed objects, maybe we should first decompress the pack to disk, then return handles spanning regions of the pack file. I'm imagining that this could be implemented using read_at-like functionality.If we assume the decompressed pack fits in memory, that could be another quick route to implementing this for now.
The text was updated successfully, but these errors were encountered: