~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/versionedfile.py

  • Committer: Martin Pool
  • Date: 2006-06-20 07:55:43 UTC
  • mfrom: (1798 +trunk)
  • mto: This revision was merged to the branch mainline in revision 1799.
  • Revision ID: mbp@sourcefrog.net-20060620075543-b10f6575d4a4fa32
[merge] bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 by Canonical Ltd
 
1
# Copyright (C) 2005, 2006 by Canonical Ltd
2
2
#
3
3
# Authors:
4
4
#   Johan Rydberg <jrydberg@gnu.org>
26
26
 
27
27
import bzrlib.errors as errors
28
28
from bzrlib.inter import InterObject
29
 
from bzrlib.symbol_versioning import *
30
29
from bzrlib.textmerge import TextMerge
31
30
from bzrlib.transport.memory import MemoryTransport
32
31
from bzrlib.tsort import topo_sort
33
32
from bzrlib import ui
 
33
from bzrlib.symbol_versioning import (deprecated_function,
 
34
        deprecated_method,
 
35
        zero_eight,
 
36
        )
34
37
 
35
38
 
36
39
class VersionedFile(object):
252
255
        return ''.join(self.get_lines(version_id))
253
256
    get_string = get_text
254
257
 
 
258
    def get_texts(self, version_ids):
 
259
        """Return the texts of listed versions as a list of strings.
 
260
 
 
261
        Raises RevisionNotPresent if version is not present in
 
262
        file history.
 
263
        """
 
264
        return [''.join(self.get_lines(v)) for v in version_ids]
 
265
 
255
266
    def get_lines(self, version_id):
256
267
        """Return version contents as a sequence of lines.
257
268
 
287
298
        
288
299
        Ghosts are not listed or referenced in the graph.
289
300
        :param version_ids: Versions to select.
290
 
                            None means retreive all versions.
 
301
                            None means retrieve all versions.
291
302
        """
292
303
        result = {}
293
304
        if version_ids is None:
388
399
        specific version marker at this point. The api may be changed
389
400
        during development to include the version that the versioned file
390
401
        thinks is relevant, but given that such hints are just guesses,
391
 
        its better not to have it if we dont need it.
 
402
        its better not to have it if we don't need it.
392
403
 
393
404
        NOTES: Lines are normalised: they will all have \n terminators.
394
405
               Lines are returned in arbitrary order.
483
494
       
484
495
        # We previously considered either 'unchanged' or 'killed-both' lines
485
496
        # to be possible places to resynchronize.  However, assuming agreement
486
 
        # on killed-both lines may be too agressive. -- mbp 20060324
 
497
        # on killed-both lines may be too aggressive. -- mbp 20060324
487
498
        for state, line in self.plan:
488
499
            if state == 'unchanged':
489
500
                # resync and flush queued conflicts changes if any
638
649
class InterVersionedFileTestProviderAdapter(object):
639
650
    """A tool to generate a suite testing multiple inter versioned-file classes.
640
651
 
641
 
    This is done by copying the test once for each interversionedfile provider
 
652
    This is done by copying the test once for each InterVersionedFile provider
642
653
    and injecting the transport_server, transport_readonly_server,
643
654
    versionedfile_factory and versionedfile_factory_to classes into each copy.
644
655
    Each copy is also given a new id() to make it easy to identify.