~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/revisiontree.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:
47
47
 
48
48
        A RevisionTree's parents match the revision graph.
49
49
        """
50
 
        parent_ids = self._repository.get_revision(self._revision_id).parent_ids
 
50
        if self._revision_id not in (None, 'null:'):
 
51
            parent_ids = self._repository.get_revision(
 
52
                self._revision_id).parent_ids
 
53
        else:
 
54
            parent_ids = []
51
55
        return parent_ids
52
56
        
53
57
    def get_revision_id(self):
69
73
    def get_file(self, file_id):
70
74
        return StringIO(self.get_file_text(file_id))
71
75
 
 
76
    def annotate_iter(self, file_id):
 
77
        """See Tree.annotate_iter"""
 
78
        w = self.get_weave(file_id)
 
79
        return w.annotate_iter(self.inventory[file_id].revision)
 
80
 
72
81
    def get_file_size(self, file_id):
73
82
        return self._inventory[file_id].text_size
74
83
 
75
 
    def get_file_sha1(self, file_id, path=None):
 
84
    def get_file_sha1(self, file_id, path=None, stat_value=None):
76
85
        ie = self._inventory[file_id]
77
86
        if ie.kind == "file":
78
87
            return ie.text_sha1
92
101
    def has_filename(self, filename):
93
102
        return bool(self.inventory.path2id(filename))
94
103
 
95
 
    def list_files(self):
 
104
    def list_files(self, include_root=False):
96
105
        # The only files returned by this are those from the version
97
106
        entries = self.inventory.iter_entries()
98
107
        # skip the root for compatability with the current apis.
99
 
        entries.next()
 
108
        if self.inventory.root is not None and not include_root:
 
109
            # skip the root for compatability with the current apis.
 
110
            entries.next()
100
111
        for path, entry in entries:
101
112
            yield path, 'V', entry.kind, entry.file_id, entry
102
113
 
107
118
    def kind(self, file_id):
108
119
        return self._inventory[file_id].kind
109
120
 
 
121
    def _comparison_data(self, entry, path):
 
122
        if entry is None:
 
123
            return None, False, None
 
124
        return entry.kind, entry.executable, None
 
125
 
 
126
    def _file_size(self, entry, stat_value):
 
127
        assert entry.text_size is not None
 
128
        return entry.text_size
 
129
 
110
130
    def lock_read(self):
111
131
        self._repository.lock_read()
112
132