From bb62833897b4f60e0907b72a8f209b5ac54ddc58 Mon Sep 17 00:00:00 2001 From: Peter Rowlands Date: Fri, 4 Nov 2022 17:58:01 +0900 Subject: [PATCH] index: move import specific entry building out of index.data() property --- dvc/output.py | 15 ++++++++++++++- dvc/repo/index.py | 7 ------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/dvc/output.py b/dvc/output.py index 81b1a99a0..1d330d15a 100644 --- a/dvc/output.py +++ b/dvc/output.py @@ -527,7 +527,10 @@ class Output: except NoRemoteError: remote = None - return DataIndexEntry( + if self.files and not self.obj: + self.obj = self.get_obj() + + entry = DataIndexEntry( meta=self.meta, obj=self.obj, hash_info=self.hash_info, @@ -535,6 +538,16 @@ class Output: cache=self.odb, remote=remote, ) + if self.stage.is_import and not self.stage.is_repo_import: + dep = self.stage.deps[0] + entry.fs = dep.fs + entry.path = dep.fs_path + entry.meta = dep.meta + if not entry.obj: + if not dep.obj: + dep.obj = dep.get_obj() + entry.obj = dep.obj + return entry def changed_checksum(self): return self.hash_info != self.get_hash() diff --git a/dvc/repo/index.py b/dvc/repo/index.py index 556f07afd..3b40b011d 100644 --- a/dvc/repo/index.py +++ b/dvc/repo/index.py @@ -242,15 +242,8 @@ class Index: workspace, key = out.index_key data_index = by_workspace[workspace] - if out.files: - out.obj = out.get_obj() - entry = out.get_entry() entry.key = key - if out.stage.is_import and not out.stage.is_repo_import: - entry.fs = out.stage.deps[0].fs - entry.path = out.stage.deps[0].fs_path - entry.meta = out.stage.deps[0].meta data_index.add(entry) return dict(by_workspace)