~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tree.py

  • Committer: Aaron Bentley
  • Date: 2006-11-17 04:06:03 UTC
  • mfrom: (2139 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2162.
  • Revision ID: aaron.bentley@utoronto.ca-20061117040603-pgebxndswvwk26tt
Merge from bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 
20
20
import os
21
21
from cStringIO import StringIO
22
 
from warnings import warn
23
22
 
24
23
import bzrlib
25
 
from bzrlib import delta, osutils
 
24
from bzrlib import (
 
25
    delta,
 
26
    osutils,
 
27
    symbol_versioning,
 
28
    )
26
29
from bzrlib.decorators import needs_read_lock
27
30
from bzrlib.errors import BzrError, BzrCheckError
28
31
from bzrlib import errors
54
57
    """
55
58
    
56
59
    def changes_from(self, other, want_unchanged=False, specific_files=None,
57
 
        extra_trees=None, require_versioned=False):
 
60
        extra_trees=None, require_versioned=False, include_root=False):
58
61
        """Return a TreeDelta of the changes from other to this tree.
59
62
 
60
63
        :param other: A tree to compare with.
81
84
            specific_files=specific_files,
82
85
            extra_trees=extra_trees,
83
86
            require_versioned=require_versioned,
 
87
            include_root=include_root
84
88
            )
85
89
 
86
90
    def iter_changes(self, from_tree, include_unchanged=False, 
222
226
        return set((p for p in paths if not pred(p)))
223
227
 
224
228
 
225
 
# for compatibility
226
 
from bzrlib.revisiontree import RevisionTree
227
 
 
228
 
 
229
229
class EmptyTree(Tree):
230
230
 
231
231
    def __init__(self):
232
 
        self._inventory = Inventory()
233
 
        warn('EmptyTree is deprecated as of bzr 0.9 please use '
234
 
            'repository.revision_tree instead.',
235
 
            DeprecationWarning, stacklevel=2)
 
232
        self._inventory = Inventory(root_id=None)
 
233
        symbol_versioning.warn('EmptyTree is deprecated as of bzr 0.9 please'
 
234
                               ' use repository.revision_tree instead.',
 
235
                               DeprecationWarning, stacklevel=2)
236
236
 
237
237
    def get_parent_ids(self):
238
238
        return []
247
247
        assert self._inventory[file_id].kind == "directory"
248
248
        return "directory"
249
249
 
250
 
    def list_files(self):
 
250
    def list_files(self, include_root=False):
251
251
        return iter([])
252
252
    
253
253
    def __contains__(self, file_id):
410
410
 
411
411
    @needs_read_lock
412
412
    def compare(self, want_unchanged=False, specific_files=None,
413
 
        extra_trees=None, require_versioned=False):
 
413
        extra_trees=None, require_versioned=False, include_root=False):
414
414
        """Return the changes from source to target.
415
415
 
416
416
        :return: A TreeDelta.
438
438
            # _compare_trees would think we want a complete delta
439
439
            return delta.TreeDelta()
440
440
        return delta._compare_trees(self.source, self.target, want_unchanged,
441
 
            specific_file_ids)
 
441
            specific_file_ids, include_root)
442
442
 
443
443
    def iter_changes(self, from_tree, to_tree, include_unchanged, 
444
444
                     specific_file_ids):
520
520
            file_id = from_entry.file_id
521
521
            if file_id in to_paths:
522
522
                continue
523
 
            to_path = osutils.pathjoin(to_paths[from_entry.parent_id],
524
 
                                       from_entry.name)
 
523
            if from_entry.parent_id is None:
 
524
                to_path = ''
 
525
            else:
 
526
                to_path = osutils.pathjoin(to_paths[from_entry.parent_id],
 
527
                                           from_entry.name)
525
528
            to_paths[file_id] = to_path
526
529
            if (specific_file_ids is not None and 
527
530
                file_id not in specific_file_ids):
537
540
            # the parent's path is necessarily known at this point.
538
541
            yield(file_id, to_path, changed_content, versioned, parent,
539
542
                  name, kind, executable)
 
543
 
 
544
 
 
545
# This was deprecated before 0.12, but did not have an official warning
 
546
@symbol_versioning.deprecated_function(symbol_versioning.zero_twelve)
 
547
def RevisionTree(*args, **kwargs):
 
548
    """RevisionTree has moved to bzrlib.revisiontree.RevisionTree()
 
549
 
 
550
    Accessing it as bzrlib.tree.RevisionTree has been deprecated as of
 
551
    bzr 0.12.
 
552
    """
 
553
    from bzrlib.revisiontree import RevisionTree as _RevisionTree
 
554
    return _RevisionTree(*args, **kwargs)
 
555
 
 
556