~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/versionedfile.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-02-01 23:48:08 UTC
  • mfrom: (2225.1.6 revert)
  • Revision ID: pqm@pqm.ubuntu.com-20070201234808-3b1302d73474bd8c
Display changes made by revert

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 by Canonical Ltd
 
1
# Copyright (C) 2005, 2006 Canonical Ltd
2
2
#
3
3
# Authors:
4
4
#   Johan Rydberg <jrydberg@gnu.org>
19
19
 
20
20
"""Versioned text file storage api."""
21
21
 
22
 
 
 
22
from bzrlib.lazy_import import lazy_import
 
23
lazy_import(globals(), """
23
24
from copy import deepcopy
24
 
from unittest import TestSuite
25
 
 
26
 
 
27
 
import bzrlib.errors as errors
 
25
import unittest
 
26
 
 
27
from bzrlib import (
 
28
    errors,
 
29
    tsort,
 
30
    revision,
 
31
    ui,
 
32
    )
 
33
from bzrlib.transport.memory import MemoryTransport
 
34
""")
 
35
 
28
36
from bzrlib.inter import InterObject
29
37
from bzrlib.textmerge import TextMerge
30
 
from bzrlib.transport.memory import MemoryTransport
31
 
from bzrlib.tsort import topo_sort
32
 
from bzrlib import ui
33
38
from bzrlib.symbol_versioning import (deprecated_function,
34
39
        deprecated_method,
35
40
        zero_eight,
54
59
        self.finished = False
55
60
        self._access_mode = access_mode
56
61
 
 
62
    @staticmethod
 
63
    def check_not_reserved_id(version_id):
 
64
        revision.check_not_reserved_id(version_id)
 
65
 
57
66
    def copy_to(self, name, transport):
58
67
        """Copy this versioned file to name on transport."""
59
68
        raise NotImplementedError(self.copy_to)
403
412
            version_ids,
404
413
            ignore_missing)
405
414
 
406
 
    def iter_lines_added_or_present_in_versions(self, version_ids=None):
 
415
    def iter_lines_added_or_present_in_versions(self, version_ids=None, 
 
416
                                                pb=None):
407
417
        """Iterate over the lines in the versioned file from version_ids.
408
418
 
409
419
        This may return lines from other versions, and does not return the
412
422
        thinks is relevant, but given that such hints are just guesses,
413
423
        its better not to have it if we don't need it.
414
424
 
 
425
        If a progress bar is supplied, it may be used to indicate progress.
 
426
        The caller is responsible for cleaning up progress bars (because this
 
427
        is an iterator).
 
428
 
415
429
        NOTES: Lines are normalised: they will all have \n terminators.
416
430
               Lines are returned in arbitrary order.
417
431
        """
468
482
        """
469
483
        raise NotImplementedError(VersionedFile.plan_merge)
470
484
        
471
 
    def weave_merge(self, plan, a_marker=TextMerge.A_MARKER, 
 
485
    def weave_merge(self, plan, a_marker=TextMerge.A_MARKER,
472
486
                    b_marker=TextMerge.B_MARKER):
473
487
        return PlanWeaveMerge(plan, a_marker, b_marker).merge_lines()[0]
474
488
 
558
572
    InterVersionedFile.get(other).method_name(parameters).
559
573
    """
560
574
 
561
 
    _optimisers = set()
 
575
    _optimisers = []
562
576
    """The available optimised InterVersionedFile types."""
563
577
 
564
578
    def join(self, pb=None, msg=None, version_ids=None, ignore_missing=False):
585
599
            target = temp_source
586
600
        version_ids = self._get_source_version_ids(version_ids, ignore_missing)
587
601
        graph = self.source.get_graph(version_ids)
588
 
        order = topo_sort(graph.items())
 
602
        order = tsort.topo_sort(graph.items())
589
603
        pb = ui.ui_factory.nested_progress_bar()
590
604
        parent_texts = {}
591
605
        try:
672
686
        self._formats = formats
673
687
    
674
688
    def adapt(self, test):
675
 
        result = TestSuite()
 
689
        result = unittest.TestSuite()
676
690
        for (interversionedfile_class,
677
691
             versionedfile_factory,
678
692
             versionedfile_factory_to) in self._formats: