~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/testament.py

  • Committer: Aaron Bentley
  • Date: 2006-09-28 01:53:23 UTC
  • mfrom: (2049 +trunk)
  • mto: (1731.2.8 nested-trees)
  • mto: This revision was merged to the branch mainline in revision 2078.
  • Revision ID: aaron.bentley@utoronto.ca-20060928015323-4e7367532c857e87
Merge from bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
131
131
        for l in self.message.splitlines():
132
132
            a('  %s\n' % l)
133
133
        a('inventory:\n')
134
 
        entries = self.inventory.iter_entries()
135
 
        entries.next()
136
 
        for path, ie in entries:
 
134
        for path, ie in self._get_entries():
137
135
            a(self._entry_to_line(path, ie))
138
136
        r.extend(self._revprops_to_lines())
139
137
        if __debug__:
142
140
                    '%r of type %s is not a plain string' % (l, type(l))
143
141
        return [line.encode('utf-8') for line in r]
144
142
 
 
143
    def _get_entries(self):
 
144
        entries = self.inventory.iter_entries()
 
145
        entries.next()
 
146
        return entries
 
147
 
145
148
    def _escape_path(self, path):
146
149
        assert not contains_linebreaks(path)
147
150
        return unicode(path.replace('\\', '/').replace(' ', '\ '))
197
200
 
198
201
 
199
202
class StrictTestament(Testament):
200
 
    """This testament format is for use as a checksum in changesets"""
 
203
    """This testament format is for use as a checksum in bundle format 0.8"""
201
204
 
202
205
    long_header = 'bazaar-ng testament version 2.1\n'
203
206
    short_header = 'bazaar-ng testament short form 2.1\n'
206
209
        l += ' ' + ie.revision
207
210
        l += {True: ' yes\n', False: ' no\n'}[ie.executable]
208
211
        return l
 
212
 
 
213
 
 
214
class StrictTestament3(StrictTestament):
 
215
    """This testament format is for use as a checksum in bundle format 0.9+
 
216
    
 
217
    It differs from StrictTestament by including data about the tree root.
 
218
    """
 
219
 
 
220
    long_header = 'bazaar testament version 3 strict\n'
 
221
    short_header = 'bazaar testament short form 3 strict\n'
 
222
    def _get_entries(self):
 
223
        return self.inventory.iter_entries()
 
224
 
 
225
    def _escape_path(self, path):
 
226
        assert not contains_linebreaks(path)
 
227
        if path == '':
 
228
            path = '.'
 
229
        return unicode(path.replace('\\', '/').replace(' ', '\ '))