~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/revisiontree.py

  • Committer: Brad Crittenden
  • Date: 2007-02-26 20:56:10 UTC
  • mfrom: (2300 +trunk)
  • mto: (2293.1.5 bzr.dev)
  • mto: This revision was merged to the branch mainline in revision 2311.
  • Revision ID: brad.crittenden@canonical.com-20070226205610-44oatbxrjjz3ajwy
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from cStringIO import StringIO
20
20
 
 
21
from bzrlib import (
 
22
    osutils,
 
23
    )
21
24
from bzrlib.tree import Tree
22
25
 
23
26
 
40
43
        self._repository = branch
41
44
        self._weave_store = branch.weave_store
42
45
        self._inventory = inv
43
 
        self._revision_id = revision_id
 
46
        self._revision_id = osutils.safe_revision_id(revision_id)
44
47
 
45
48
    def get_parent_ids(self):
46
49
        """See Tree.get_parent_ids.
59
62
        return self._revision_id
60
63
 
61
64
    def get_weave(self, file_id):
 
65
        file_id = osutils.safe_file_id(file_id)
62
66
        return self._weave_store.get_weave(file_id,
63
67
                self._repository.get_transaction())
64
68
 
65
69
    def get_file_lines(self, file_id):
 
70
        file_id = osutils.safe_file_id(file_id)
66
71
        ie = self._inventory[file_id]
67
72
        weave = self.get_weave(file_id)
68
73
        return weave.get_lines(ie.revision)
69
74
 
70
75
    def get_file_text(self, file_id):
 
76
        file_id = osutils.safe_file_id(file_id)
71
77
        return ''.join(self.get_file_lines(file_id))
72
78
 
73
79
    def get_file(self, file_id):
 
80
        file_id = osutils.safe_file_id(file_id)
74
81
        return StringIO(self.get_file_text(file_id))
75
82
 
76
83
    def annotate_iter(self, file_id):
77
84
        """See Tree.annotate_iter"""
 
85
        file_id = osutils.safe_file_id(file_id)
78
86
        w = self.get_weave(file_id)
79
87
        return w.annotate_iter(self.inventory[file_id].revision)
80
88
 
81
89
    def get_file_size(self, file_id):
 
90
        file_id = osutils.safe_file_id(file_id)
82
91
        return self._inventory[file_id].text_size
83
92
 
84
93
    def get_file_sha1(self, file_id, path=None, stat_value=None):
 
94
        file_id = osutils.safe_file_id(file_id)
85
95
        ie = self._inventory[file_id]
86
96
        if ie.kind == "file":
87
97
            return ie.text_sha1
88
98
        return None
89
99
 
90
100
    def get_file_mtime(self, file_id, path=None):
 
101
        file_id = osutils.safe_file_id(file_id)
91
102
        ie = self._inventory[file_id]
92
103
        revision = self._repository.get_revision(ie.revision)
93
104
        return revision.timestamp
94
105
 
95
106
    def is_executable(self, file_id, path=None):
 
107
        file_id = osutils.safe_file_id(file_id)
96
108
        ie = self._inventory[file_id]
97
109
        if ie.kind != "file":
98
 
            return None 
99
 
        return self._inventory[file_id].executable
 
110
            return None
 
111
        return ie.executable
100
112
 
101
113
    def has_filename(self, filename):
102
114
        return bool(self.inventory.path2id(filename))
112
124
            yield path, 'V', entry.kind, entry.file_id, entry
113
125
 
114
126
    def get_symlink_target(self, file_id):
 
127
        file_id = osutils.safe_file_id(file_id)
115
128
        ie = self._inventory[file_id]
116
129
        return ie.symlink_target;
117
130
 
118
131
    def kind(self, file_id):
 
132
        file_id = osutils.safe_file_id(file_id)
119
133
        return self._inventory[file_id].kind
120
134
 
121
135
    def _comparison_data(self, entry, path):