- Uses an inventory-deltas substream rather than inventing a new content factory;
- Adds a few debug flags to control whether this code path is used or not;
- Fixes some bugs relating to rich roots and to deletes in inventory_delta.py!
I was surprised to realise that, despite the expectations of inventory_delta.py, non-rich-root repos can have roots with IDs other than 'TREE_ROOT'. What they can't have is a root entry with a revision that doesn't match the inventory's revision.
This beats InterDifferingSerializer for a push of bzr.dev -r2000 from 1.9->2a over localhost HPSS by about 3x (9.5min vs. ~30min, although not on a totally quiescent laptop). LocalTransport push with IDS is about 10x faster than that, though.
Ok, third time lucky! :)
Some notable changes since the last review:
- Uses an inventory-deltas substream rather than inventing a new content factory;
- Adds a few debug flags to control whether this code path is used or not;
- Fixes some bugs relating to rich roots and to deletes in inventory_delta.py!
I was surprised to realise that, despite the expectations of inventory_delta.py, non-rich-root repos can have roots with IDs other than 'TREE_ROOT'. What they can't have is a root entry with a revision that doesn't match the inventory's revision.
This beats InterDifferingS erializer for a push of bzr.dev -r2000 from 1.9->2a over localhost HPSS by about 3x (9.5min vs. ~30min, although not on a totally quiescent laptop). LocalTransport push with IDS is about 10x faster than that, though.