/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/repository.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-09-14 03:16:09 UTC
  • mfrom: (2817.2.2 add_inventory)
  • Revision ID: pqm@pqm.ubuntu.com-20070914031609-ccdhl0ebzrohpa1t
(robertc) Reduce the time to serialise inventories by 20 percent and align the api for knit insertion. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
120
120
            "Mismatch between inventory revision" \
121
121
            " id and insertion revid (%r, %r)" % (inv.revision_id, revision_id)
122
122
        assert inv.root is not None
123
 
        inv_text = self.serialise_inventory(inv)
124
 
        inv_sha1 = osutils.sha_string(inv_text)
125
 
        inv_vf = self.control_weaves.get_weave('inventory',
126
 
                                               self.get_transaction())
127
 
        self._inventory_add_lines(inv_vf, revision_id, parents,
128
 
            osutils.split_lines(inv_text), check_content=False)
129
 
        return inv_sha1
 
123
        inv_lines = self._serialise_inventory_to_lines(inv)
 
124
        inv_vf = self.get_inventory_weave()
 
125
        return self._inventory_add_lines(inv_vf, revision_id, parents,
 
126
            inv_lines, check_content=False)
130
127
 
131
128
    def _inventory_add_lines(self, inv_vf, revision_id, parents, lines,
132
129
        check_content=True):
 
130
        """Store lines in inv_vf and return the sha1 of the inventory."""
133
131
        final_parents = []
134
132
        for parent in parents:
135
133
            if parent in inv_vf:
136
134
                final_parents.append(parent)
137
 
        inv_vf.add_lines(revision_id, final_parents, lines,
138
 
            check_content=check_content)
 
135
        return inv_vf.add_lines(revision_id, final_parents, lines,
 
136
            check_content=check_content)[0]
139
137
 
140
138
    @needs_write_lock
141
139
    def add_revision(self, revision_id, rev, inv=None, config=None):
842
840
    def serialise_inventory(self, inv):
843
841
        return self._serializer.write_inventory_to_string(inv)
844
842
 
 
843
    def _serialise_inventory_to_lines(self, inv):
 
844
        return self._serializer.write_inventory_to_lines(inv)
 
845
 
845
846
    def get_serializer_format(self):
846
847
        return self._serializer.format_num
847
848