~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree_4.py

(jelmer) Support passing in file ids as tuples to the Tree API. (Jelmer
 Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1873
1873
 
1874
1874
    @needs_read_lock
1875
1875
    def get_file_revision(self, file_id):
1876
 
        return self.inventory[file_id].revision
 
1876
        inv, inv_file_id = self._unpack_file_id(file_id)
 
1877
        return inv[inv_file_id].revision
1877
1878
 
1878
1879
    def get_file(self, file_id, path=None):
1879
1880
        return StringIO(self.get_file_text(file_id))
1880
1881
 
1881
1882
    def get_file_size(self, file_id):
1882
1883
        """See Tree.get_file_size"""
1883
 
        return self.inventory[file_id].text_size
 
1884
        inv, inv_file_id = self._unpack_file_id(file_id)
 
1885
        return inv[inv_file_id].text_size
1884
1886
 
1885
1887
    def get_file_text(self, file_id, path=None):
1886
1888
        _, content = list(self.iter_files_bytes([(file_id, None)]))[0]
1887
1889
        return ''.join(content)
1888
1890
 
1889
1891
    def get_reference_revision(self, file_id, path=None):
1890
 
        return self.inventory[file_id].reference_revision
 
1892
        inv, inv_file_id = self._unpack_file_id(file_id)
 
1893
        return inv[inv_file_id].reference_revision
1891
1894
 
1892
1895
    def iter_files_bytes(self, desired_files):
1893
1896
        """See Tree.iter_files_bytes.
1947
1950
 
1948
1951
    def path_content_summary(self, path):
1949
1952
        """See Tree.path_content_summary."""
1950
 
        file_id = self.path2id(path)
1951
 
        if file_id is None:
 
1953
        inv, inv_file_id = self._path2inv_file_id(path)
 
1954
        if inv_file_id is None:
1952
1955
            return ('missing', None, None, None)
1953
 
        entry = self.inventory[file_id]
 
1956
        entry = inv[inv_file_id]
1954
1957
        kind = entry.kind
1955
1958
        if kind == 'file':
1956
1959
            return (kind, entry.text_size, entry.executable, entry.text_sha1)
1960
1963
            return (kind, None, None, None)
1961
1964
 
1962
1965
    def is_executable(self, file_id, path=None):
1963
 
        ie = self.inventory[file_id]
 
1966
        inv, inv_file_id = self._unpack_file_id(file_id)
 
1967
        ie = inv[inv_file_id]
1964
1968
        if ie.kind != "file":
1965
1969
            return False
1966
1970
        return ie.executable
1975
1979
            inv = self.inventory
1976
1980
            from_dir_id = None
1977
1981
        else:
1978
 
            inv = self.inventory
1979
 
            from_dir_id = self.path2id(from_dir)
 
1982
            inv, from_dir_id = self._path2inv_file_id(from_dir)
1980
1983
            if from_dir_id is None:
1981
1984
                # Directory not versioned
1982
1985
                return