lp:~jameinel/bzr/fix277537
- Get this branch:
- bzr branch lp:~jameinel/bzr/fix277537
Branch merges
Branch information
Recent revisions
- 22. By Vincent Ladeuil
-
Ensure compatibility up to bzr-1.6.1 (at least).
* reconcile.py:
(InventoryAncestryReconcilePac ker._copy_ fixed_nodes) : Ensure
old (as far as 1.6.1) bzr versions compatibility by using either
'chunked' or 'fulltext' storage kind. Fix another edge case in
batch calculation - 21. By Vincent Ladeuil
-
Handle compression parent fix even if the plugin has already been
applied.* tests/test_
fix277537. py:
(TestCommand.assertFixedPare nts): Update to take compression
parents fixed into account.
(TestCommand.test_no_ parents_ fixed,
TestCommand.test_parents_ fixed_but_ not_twice) : Update
assertFixedParents uses.* reconcile.py:
(InventoryAncestryReconcilePac ker.__init_ _): Add
compression_parent_ fixed attribute.
(InventoryAncestryReconcilePac ker._copy_ text_texts) : Separate th
fixes themselves from the part that decide which shold be
applied. Fix compression parent even if it isn't mentioned in the
inconsistent parents description. Change fixed_nodes description
to include only the desired parents (the wrong ones weren't
strictly needed). Delete surprising reference to knit._counter.
(InventoryAncestryReconcilePac ker._copy_ fixed_nodes) : Fix bug when
there is a single remaining node to start a new batch. Update
fixed_nodes uses.
(InventoryAncestryReconciler. __init_ _): Add
compression_parent_ fixed attribute.
(InventoryAncestryReconciler. _reconcile_ steps): Forward
compression_parent_ fixed. * __init__.py:
(cmd_fix277537.run): Also report compression parents fixed. - 20. By John A Meinel
-
Change how we do the batch processing.
The old code used a fixed 100-node batch, the new code batches based on file-id,
so that no batch gets larger than 100, but we can still batch smaller groups
together.
We also now track the parent content cache, so less work needs to be done
for some of the text insertions.
Because we track parent texts, we don't seem to need to flush after every
record. This doesn't quite fit what I thought, but it seems to work just fine.
The hit rate isn't terrific, but it is reasonable. Memory still seems reasonable,
and the total time should be in the 10-minute range.
A little bit more could be gained by changing the bzr add_lines() code
to pass the parent_texts cache down into get_content_maps(), but it would
also require updating _get_record_map() to realize it doesn't need to
extract those specific entries.
(applying the delta in get_content_map is very fast versus extracting the
text in the first place in get_record_map) - 17. By John A Meinel
-
Change the sort order.
Group by file_id before sorting by revision topology. This should speed up text
extraction by getting multiple texts of the same file, rather than randomly. - 15. By John A Meinel
-
Instead of always copying nodes and only fixing the index,
change the code to re-insert the texts that would have deltas pointing at
non-left-hand parents.'bzr reconcile' was written to do just that, but it somehow got removed
in the new code. - 14. By Vincent Ladeuil
-
Exclude the known poisoned revids.
* reconcile.py:
(InventoryAncestryReconcilePac ker.__init_ _): revision_ids is a
mandatory parameter, delete default value.
(InventoryAncestryReconcilePac ker._copy_ text_texts) : Exclude the
poisoned texts (associated with the poisoned revisions).
(InventoryAncestryReconciler. _reconcile_ steps): Use a hook to
define the revisions to process.
(InventoryAncestryReconciler. _revision_ ids_of_ interest) : Exclude
some poisoned revisions. They will not be part of the resulting
repository (revisions, inventories and texts).* __init__.py:
(cmd_fix277537.run): Report the poisoned excluded texts. - 13. By Vincent Ladeuil
-
Update known inconsistent parents.
* reconcile.py:
(InventoryAncestryReconcilePac ker._copy_ text_texts) : Bah, previous
fix was wrong, revert the criminal part.* known-inconsist
ent-file- revids:
Updated with full repo inconsistent parents.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar RepositoryFormatKnitPack6 (bzr 1.9)
- Stacked on:
- lp:~bzr/bzr/trunk-old