~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/testament.py

Tags: bzr-0.1
- testament symlink support

- more testament tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
152
152
 
153
153
    def _escape_path(self, path):
154
154
        assert not contains_linebreaks(path)
155
 
        return unicode(path.replace('\\', '\\\\').replace(' ', '\ ')).encode('utf-8')
 
155
        return unicode(path.replace('\\', '/').replace(' ', '\ ')).encode('utf-8')
156
156
 
157
157
    def _entry_to_line(self, path, ie):
158
158
        """Turn an inventory entry into a testament line"""
164
164
            # TODO: avoid switching on kind
165
165
            assert ie.text_sha1
166
166
            l += ' ' + ie.text_sha1
 
167
        elif ie.kind == 'symlink':
 
168
            assert ie.symlink_target
 
169
            l += ' ' + self._escape_path(ie.symlink_target)
167
170
        l += '\n'
168
171
        return l
169
172
 
175
178
        s = sha()
176
179
        map(s.update, self.as_text_lines())
177
180
        return ('bazaar-ng testament short form 1\n'
178
 
                'revision %s\n'
179
 
                'sha1 %s\n'
 
181
                'revision-id: %s\n'
 
182
                'sha1: %s\n'
180
183
                % (self.revision_id, s.hexdigest()))
181
184