~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree_4.py

First cut at pluralised VersionedFiles. Some rather massive API incompatabilities, primarily because of the difficulty of coherence among competing stores.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1405
1405
    def annotate_iter(self, file_id,
1406
1406
                      default_revision=_mod_revision.CURRENT_REVISION):
1407
1407
        """See Tree.annotate_iter"""
1408
 
        w = self._get_weave(file_id)
1409
 
        return w.annotate(self.inventory[file_id].revision)
 
1408
        text_key = (file_id, self.inventory[file_id].revision)
 
1409
        annotations = self._repository.texts.annotate(text_key)
 
1410
        return [(key[-1], line) for key, line in annotations]
1410
1411
 
1411
1412
    def _get_ancestors(self, default_revision):
1412
1413
        return set(self._repository.get_ancestry(self._revision_id,
1564
1565
            return parent_details[1]
1565
1566
        return None
1566
1567
 
1567
 
    def _get_weave(self, file_id):
1568
 
        return self._repository.weave_store.get_weave(file_id,
1569
 
                self._repository.get_transaction())
1570
 
 
1571
1568
    def get_file(self, file_id, path=None):
1572
1569
        return StringIO(self.get_file_text(file_id))
1573
1570
 
1574
1571
    def get_file_lines(self, file_id):
1575
 
        entry = self._get_entry(file_id=file_id)[1]
1576
 
        if entry is None:
1577
 
            raise errors.NoSuchId(tree=self, file_id=file_id)
1578
 
        return self._get_weave(file_id).get_lines(entry[1][4])
 
1572
        return osutils.split_lines(self.get_file_text(file_id))
1579
1573
 
1580
1574
    def get_file_size(self, file_id):
1581
1575
        """See Tree.get_file_size"""
1582
1576
        return self.inventory[file_id].text_size
1583
1577
 
1584
1578
    def get_file_text(self, file_id):
1585
 
        return ''.join(self.get_file_lines(file_id))
 
1579
        return list(self.iter_files_bytes([(file_id, None)]))[0][1]
1586
1580
 
1587
1581
    def get_reference_revision(self, file_id, path=None):
1588
1582
        return self.inventory[file_id].reference_revision