~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree_4.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-06-25 10:36:36 UTC
  • mfrom: (3350.6.12 versionedfiles)
  • Revision ID: pqm@pqm.ubuntu.com-20080625103636-6kxh4e1gmyn82f50
(mbp for robertc) VersionedFiles refactoring

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007, 2008 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
1430
1430
    def annotate_iter(self, file_id,
1431
1431
                      default_revision=_mod_revision.CURRENT_REVISION):
1432
1432
        """See Tree.annotate_iter"""
1433
 
        w = self._get_weave(file_id)
1434
 
        return w.annotate(self.inventory[file_id].revision)
 
1433
        text_key = (file_id, self.inventory[file_id].revision)
 
1434
        annotations = self._repository.texts.annotate(text_key)
 
1435
        return [(key[-1], line) for (key, line) in annotations]
1435
1436
 
1436
1437
    def _get_ancestors(self, default_revision):
1437
1438
        return set(self._repository.get_ancestry(self._revision_id,
1597
1598
            return parent_details[1]
1598
1599
        return None
1599
1600
 
1600
 
    def _get_weave(self, file_id):
1601
 
        return self._repository.weave_store.get_weave(file_id,
1602
 
                self._repository.get_transaction())
1603
 
 
1604
1601
    def get_file(self, file_id, path=None):
1605
1602
        return StringIO(self.get_file_text(file_id))
1606
1603
 
1607
1604
    def get_file_lines(self, file_id):
1608
 
        entry = self._get_entry(file_id=file_id)[1]
1609
 
        if entry is None:
1610
 
            raise errors.NoSuchId(tree=self, file_id=file_id)
1611
 
        return self._get_weave(file_id).get_lines(entry[1][4])
 
1605
        return osutils.split_lines(self.get_file_text(file_id))
1612
1606
 
1613
1607
    def get_file_size(self, file_id):
1614
1608
        """See Tree.get_file_size"""
1615
1609
        return self.inventory[file_id].text_size
1616
1610
 
1617
1611
    def get_file_text(self, file_id):
1618
 
        return ''.join(self.get_file_lines(file_id))
 
1612
        return list(self.iter_files_bytes([(file_id, None)]))[0][1]
1619
1613
 
1620
1614
    def get_reference_revision(self, file_id, path=None):
1621
1615
        return self.inventory[file_id].reference_revision