Part of bzrlib.repofmt.pack_repo View In Hierarchy
Known subclasses: bzrlib.repofmt.groupcompress_repo.GCCHKPacker, bzrlib.repofmt.knitpack_repo.KnitPacker
Method | __init__ | Create a Packer. |
Method | pack | Create a new pack by reading data from other packs. |
Method | open_pack | Open a pack for the pack we are creating. |
Method | _copy_revision_texts | Copy revision data to the new pack. |
Method | _copy_inventory_texts | Copy the inventory texts to the new pack. |
Method | _copy_text_texts | Undocumented |
Method | _create_pack_from_packs | Undocumented |
Method | _log_copied_texts | Undocumented |
Method | _use_pack | Return True if new_pack should be used. |
Parameters | pack_collection | A RepositoryPackCollection object where the new pack is being written to. |
packs | The packs to combine. | |
suffix | The suffix to use on the temporary files for the pack. | |
revision_ids | Revision ids to limit the pack to. | |
reload_func | A function to call if a pack file/index goes missing. The side effect of calling this function should be to update self.packs. See also AggregateIndex |
This does little more than a bulk copy of data. One key difference is that data with the same item key across multiple packs is elided from the output. The new pack is written into the current pack store along with its indices, and the name added to the pack names. The source packs are not altered and are not required to be in the current pack collection.
Parameters | pb | An optional progress bar to use. A nested bar is created if this is None. |
Returns | A Pack object, or None if nothing was copied. |
self._revision_keys is used to determine what inventories to copy.
Sets self._text_filter appropriately.
Parameters | new_pack | The pack that has just been created. |
Returns | True if the pack should be used. |