diff --git a/dvc/remote/base.py b/dvc/remote/base.py index 185175816..e56171d0e 100644 --- a/dvc/remote/base.py +++ b/dvc/remote/base.py @@ -767,8 +767,11 @@ class RemoteBASE(object): checksum = checksum_info.get(self.PARAM_CHECKSUM) if not checksum: - msg = "No checksum info for '{}'." - logger.debug(msg.format(str(path_info))) + logger.warning( + "No checksum info found for '{}'. " + "It won't be created.".format(str(path_info)) + ) + self.safe_remove(path_info, force=force) return if not self.changed(path_info, checksum_info): diff --git a/tests/func/test_checkout.py b/tests/func/test_checkout.py index 02671f44a..c984ff410 100644 --- a/tests/func/test_checkout.py +++ b/tests/func/test_checkout.py @@ -575,3 +575,9 @@ class TestCheckoutMovedCacheDirWithSymlinks(TestDvc): relpath(old_data_link, old_cache_dir), relpath(new_data_link, new_cache_dir), ) + + +def test_checkout_no_checksum(repo_dir, dvc_repo): + stage = dvc_repo.run(outs=[repo_dir.FOO], no_exec=True, cmd="somecmd") + dvc_repo.checkout(stage.path, force=True) + assert not os.path.exists(repo_dir.FOO)