~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/weave.py

  • Committer: Martin Pool
  • Date: 2005-09-07 09:57:01 UTC
  • Revision ID: mbp@sourcefrog.net-20050907095701-3da04d3c151a4b66
- [WIP] retrieve historical texts from weaves

 - new WeaveStore class
 - RevisionTree uses one of these to get out texts
 - Branch has a WeaveStore rather than a text_store
 - clean up Branch.basis_tree
 - new Tree.get_file_text just returns the whole text as a string; 
   often simpler

Show diffs side-by-side

added added

removed removed

Lines of Context:
87
87
 
88
88
 
89
89
import sha
90
 
 
 
90
from cStringIO import StringIO
91
91
 
92
92
 
93
93
class WeaveError(Exception):
451
451
 
452
452
        The set typically but not necessarily corresponds to a version.
453
453
        """
 
454
        for i in versions:
 
455
            if not isinstance(i, int):
 
456
                raise ValueError(i)
 
457
            
454
458
        included = self.inclusions(versions)
455
459
 
456
460
        istack = []
507
511
            yield line
508
512
 
509
513
 
 
514
    def get_text(self, version):
 
515
        assert isinstance(version, int)
 
516
        s = StringIO()
 
517
        s.writelines(self.get_iter(version))
 
518
        return s.getvalue()
 
519
 
 
520
 
510
521
    def get(self, index):
511
522
        return list(self.get_iter(index))
512
523