~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/knit.py

  • Committer: John Arbash Meinel
  • Date: 2006-08-10 00:43:37 UTC
  • mto: This revision was merged to the branch mainline in revision 1926.
  • Revision ID: john@arbash-meinel.com-20060810004337-6aa4d7ea80e85093
Moving everything into a new location so that we can cache more than just revision ids

Show diffs side-by-side

added added

removed removed

Lines of Context:
74
74
import warnings
75
75
 
76
76
import bzrlib
77
 
import bzrlib.errors as errors
 
77
from bzrlib import (
 
78
    cache_utf8,
 
79
    errors,
 
80
    )
78
81
from bzrlib.errors import FileExists, NoSuchFile, KnitError, \
79
82
        InvalidRevisionId, KnitCorrupt, KnitHeaderError, \
80
83
        RevisionNotPresent, RevisionAlreadyPresent
82
85
from bzrlib.trace import mutter
83
86
from bzrlib.osutils import contains_whitespace, contains_linebreaks, \
84
87
     sha_strings
85
 
import bzrlib.revision
86
88
from bzrlib.symbol_versioning import DEPRECATED_PARAMETER, deprecated_passed
87
89
from bzrlib.tsort import topo_sort
88
90
import bzrlib.weave
163
165
        internal representation is of the format:
164
166
        (revid, plaintext)
165
167
        """
166
 
        decode_utf8 = bzrlib.revision.decode_utf8
 
168
        decode_utf8 = cache_utf8.decode
167
169
        lines = []
168
170
        for line in content:
169
171
            origin, text = line.split(' ', 1)
184
186
        internal representation is
185
187
        (start, end, count, [1..count tuples (revid, newline)])
186
188
        """
187
 
        decode_utf8 = bzrlib.revision.decode_utf8
 
189
        decode_utf8 = cache_utf8.decode
188
190
        result = []
189
191
        lines = iter(lines)
190
192
        next = lines.next
205
207
 
206
208
        see parse_fulltext which this inverts.
207
209
        """
208
 
        encode_utf8 = bzrlib.revision.encode_utf8
 
210
        encode_utf8 = cache_utf8.encode
209
211
        return ['%s %s' % (encode_utf8(o), t) for o, t in content._lines]
210
212
 
211
213
    def lower_line_delta(self, delta):
213
215
 
214
216
        See parse_line_delta which this inverts.
215
217
        """
216
 
        encode_utf8 = bzrlib.revision.encode_utf8
 
218
        encode_utf8 = cache_utf8.encode
217
219
        out = []
218
220
        for start, end, c, lines in delta:
219
221
            out.append('%d,%d,%d\n' % (start, end, c))
1211
1213
        return self._cache[version_id][5]
1212
1214
 
1213
1215
    def _version_list_to_index(self, versions):
1214
 
        encode_utf8 = bzrlib.revision.encode_utf8
 
1216
        encode_utf8 = cache_utf8.encode
1215
1217
        result_list = []
1216
1218
        for version in versions:
1217
1219
            if version in self._cache:
1233
1235
                         (version_id, options, pos, size, parents).
1234
1236
        """
1235
1237
        lines = []
1236
 
        encode_utf8 = bzrlib.revision.encode_utf8
 
1238
        encode_utf8 = cache_utf8.encode
1237
1239
        for version_id, options, pos, size, parents in versions:
1238
1240
            line = "\n%s %s %s %s %s :" % (encode_utf8(version_id),
1239
1241
                                           ','.join(options),
1332
1334
        sio = StringIO()
1333
1335
        data_file = GzipFile(None, mode='wb', fileobj=sio)
1334
1336
 
1335
 
        version_id_utf8 = bzrlib.revision.encode_utf8(version_id)
 
1337
        version_id_utf8 = cache_utf8.encode(version_id)
1336
1338
        data_file.writelines(chain(
1337
1339
            ["version %s %d %s\n" % (version_id_utf8,
1338
1340
                                     len(lines),
1373
1375
        rec = df.readline().split()
1374
1376
        if len(rec) != 4:
1375
1377
            raise KnitCorrupt(self._filename, 'unexpected number of elements in record header')
1376
 
        if bzrlib.revision.decode_utf8(rec[1]) != version_id:
 
1378
        if cache_utf8.decode(rec[1]) != version_id:
1377
1379
            raise KnitCorrupt(self._filename, 
1378
1380
                              'unexpected version, wanted %r, got %r' % (
1379
1381
                                version_id, rec[1]))
1388
1390
        record_contents = df.readlines()
1389
1391
        l = record_contents.pop()
1390
1392
        assert len(record_contents) == int(rec[2])
1391
 
        if l != 'end %s\n' % bzrlib.revision.encode_utf8(version_id):
 
1393
        if l != 'end %s\n' % cache_utf8.encode(version_id):
1392
1394
            raise KnitCorrupt(self._filename, 'unexpected version end line %r, wanted %r' 
1393
1395
                        % (l, version_id))
1394
1396
        df.close()