From ffa630e8d559ef99b2b161020f84360e7c38d51d Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Tue, 28 Nov 2023 18:06:50 +0200 Subject: [PATCH] push: handle missing/failed version_aware file Previously we used recorded index which had stub entries for missing/failed outputs, but now we actually collect everything ourselves and those are missing. --- dvc/repo/worktree.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dvc/repo/worktree.py b/dvc/repo/worktree.py index 8dbad06a03..8b8d4a95a1 100644 --- a/dvc/repo/worktree.py +++ b/dvc/repo/worktree.py @@ -101,7 +101,7 @@ def _get_remote( return repo.cloud.get_remote(name, command) -def _merge_push_meta( +def _merge_push_meta( # noqa: C901 out: "Output", index: Union["DataIndex", "DataIndexView"], remote: Optional[str] = None, @@ -116,7 +116,11 @@ def _merge_push_meta( from dvc_data.index.save import build_tree _, key = out.index_key - entry = index[key] + + entry = index.get(key) + if entry is None: + return + repo = out.stage.repo if out.isdir(): old_tree = out.get_obj()