1684
1684
return self.__by_parent
1686
1686
def _comparison_data(self, entry, path):
1687
kind, executable = self.get_kind_and_executable_by_path(path)
1687
kind, size, executable, link_or_sha1 = self.path_content_summary(path)
1688
1688
if kind == 'missing':
1690
1690
executable = False
1955
1955
executable = tt._new_executability.get(trans_id, executable)
1956
1956
return kind, size, executable, link_or_sha1
1958
def get_kind_and_executable_by_path(self, path):
1959
trans_id = self._path2trans_id(path)
1960
tt = self._transform
1961
tree_path = tt._tree_id_paths.get(trans_id)
1962
kind = tt._new_contents.get(trans_id)
1964
if tree_path is None or trans_id in tt._removed_contents:
1965
return 'missing', None, None, None
1966
kind, executable = tt._tree.get_kind_and_executable_by_path(tree_path)
1968
limbo_name = tt._limbo_name(trans_id)
1969
if trans_id in tt._new_reference_revision:
1970
kind = 'tree-reference'
1972
statval = os.lstat(limbo_name)
1973
if not supports_executable():
1976
executable = statval.st_mode & S_IEXEC
1979
if supports_executable():
1980
executable = tt._new_executability.get(trans_id, executable)
1981
return kind, executable
1983
1958
def iter_changes(self, from_tree, include_unchanged=False,
1984
1959
specific_files=None, pb=None, extra_trees=None,
1985
1960
require_versioned=True, want_unversioned=False):