From 3891e81bddd3eabf9124f3b246fbe8d3181b0c48 Mon Sep 17 00:00:00 2001 From: Peter Rowlands Date: Fri, 4 Nov 2022 18:03:44 +0900 Subject: [PATCH] index: load dir entries before generating target views --- dvc/repo/index.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/dvc/repo/index.py b/dvc/repo/index.py index 3b40b011d..f3c2e1739 100644 --- a/dvc/repo/index.py +++ b/dvc/repo/index.py @@ -411,14 +411,18 @@ class IndexView: def key_filter(workspace: str, key: "DataIndexKey"): try: - return key in self._data_prefixes[workspace] + return key in self._data_prefixes[workspace] or any( + key[: len(prefix)] == prefix + for prefix in self._data_prefixes[workspace] + ) except KeyError: return False - return { - workspace: view(index, partial(key_filter, workspace)) - for workspace, index in self._index.data.items() - } + data = {} + for workspace, data_index in self._index.data.items(): + data_index.load() + data[workspace] = view(data_index, partial(key_filter, workspace)) + return data if __name__ == "__main__":