~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tree.py

  • Committer: Martin Pool
  • Date: 2005-08-30 06:10:39 UTC
  • Revision ID: mbp@sourcefrog.net-20050830061039-1d0347fb236c39ad
- clean up some code in revision.py

- move all exceptions to bzrlib.errors

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
"""
19
19
 
20
20
import os
21
 
from cStringIO import StringIO
22
21
 
23
22
import bzrlib
24
23
from bzrlib.trace import mutter, note
25
 
from bzrlib.errors import BzrError, BzrCheckError
 
24
from bzrlib.errors import BzrError
26
25
from bzrlib.inventory import Inventory
27
26
from bzrlib.osutils import pumpfile, appendpath, fingerprint_file
28
27
 
76
75
                         doc="Inventory of this Tree")
77
76
 
78
77
    def _check_retrieved(self, ie, f):
79
 
        if not __debug__:
80
 
            return  
81
78
        fp = fingerprint_file(f)
82
79
        f.seek(0)
83
80
        
95
92
                     "store is probably damaged/corrupt"])
96
93
 
97
94
 
98
 
    def print_file(self, file_id):
99
 
        """Print file with id `file_id` to stdout."""
 
95
    def print_file(self, fileid):
 
96
        """Print file with id `fileid` to stdout."""
100
97
        import sys
101
 
        sys.stdout.write(self.get_file_text(file_id))
 
98
        pumpfile(self.get_file(fileid), sys.stdout)
102
99
        
103
100
        
104
101
    def export(self, dest, format='dir', root=None):
122
119
           or at least passing a description to the constructor.
123
120
    """
124
121
    
125
 
    def __init__(self, weave_store, inv, revision_id):
126
 
        self._weave_store = weave_store
 
122
    def __init__(self, store, inv):
 
123
        self._store = store
127
124
        self._inventory = inv
128
 
        self._revision_id = revision_id
129
 
 
130
 
    def get_weave(self, file_id):
131
 
        return self._weave_store.get_weave(file_id)
132
 
 
133
 
 
134
 
    def get_file_lines(self, file_id):
135
 
        ie = self._inventory[file_id]
136
 
        weave = self.get_weave(file_id)
137
 
        return weave.get(ie.text_version)
138
 
        
139
 
 
140
 
    def get_file_text(self, file_id):
141
 
        return ''.join(self.get_file_lines(file_id))
142
 
 
143
125
 
144
126
    def get_file(self, file_id):
145
 
        return StringIO(self.get_file_text(file_id))
 
127
        ie = self._inventory[file_id]
 
128
        f = self._store[ie.text_id]
 
129
        mutter("  get fileid{%s} from %r" % (file_id, self))
 
130
        self._check_retrieved(ie, f)
 
131
        return f
146
132
 
147
133
    def get_file_size(self, file_id):
148
134
        return self._inventory[file_id].text_size