~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/reconcile.py

  • Committer: Robert Collins
  • Date: 2006-03-07 23:55:07 UTC
  • mto: (1594.2.4 integration)
  • mto: This revision was merged to the branch mainline in revision 1596.
  • Revision ID: robertc@robertcollins.net-20060307235507-d7b3d2659d3eb548
Stop reconcile on weaves being quadratic.

Show diffs side-by-side

added added

removed removed

Lines of Context:
105
105
 
106
106
    def _reweave_inventory(self):
107
107
        """Regenerate the inventory weave for the repository from scratch."""
 
108
        # local because its really a wart we want to hide
 
109
        from bzrlib.weave import WeaveFile, Weave
108
110
        transaction = self.repo.get_transaction()
109
111
        self.pb.update('Reading inventory data.')
110
112
        self.inventory = self.repo.get_inventory_weave()
141
143
            # this entry has all the non ghost parents in the inventory
142
144
            # file already.
143
145
            self._reweave_step('adding inventories')
144
 
            new_inventory.add_lines(rev_id, parents, self.inventory.get_lines(rev_id))
 
146
            # ugly but needed, weaves are just way tooooo slow else.
 
147
            if isinstance(new_inventory, WeaveFile):
 
148
                Weave.add_lines(new_inventory, rev_id, parents, self.inventory.get_lines(rev_id))
 
149
            else:
 
150
                new_inventory.add_lines(rev_id, parents, self.inventory.get_lines(rev_id))
145
151
 
 
152
        if isinstance(new_inventory, WeaveFile):
 
153
            new_inventory._save()
146
154
        # if this worked, the set of new_inventory.names should equal
147
155
        # self.pending
148
156
        assert set(new_inventory.versions()) == self.pending