diff --git a/dvc/stage/imports.py b/dvc/stage/imports.py index 304821418..d87acec0d 100644 --- a/dvc/stage/imports.py +++ b/dvc/stage/imports.py @@ -12,6 +12,7 @@ def _update_import_on_remote(stage, remote, jobs): "be updated with --to-remote" ) + stage.save_deps() url = stage.deps[0].def_path odb = stage.repo.cloud.get_remote_odb(remote, "update") stage.outs[0].transfer(url, odb=odb, jobs=jobs, update=True) diff --git a/tests/func/test_update.py b/tests/func/test_update.py index 96a954926..a5b7735e0 100644 --- a/tests/func/test_update.py +++ b/tests/func/test_update.py @@ -374,7 +374,10 @@ def test_update_import_url_to_remote(tmp_dir, dvc, workspace, local_remote): stage = dvc.imp_url("remote://workspace/foo", to_remote=True) workspace.gen("foo", "bar") - stage = dvc.update(stage.path, to_remote=True) + (updated,) = dvc.update(stage.path, to_remote=True) + + assert stage.deps[0].hash_info != updated.deps[0].hash_info + assert stage.outs[0].hash_info != updated.outs[0].hash_info dvc.pull("foo") assert (tmp_dir / "foo").read_text() == "bar" @@ -400,7 +403,10 @@ def test_update_import_url_to_remote_directory( } ) - stage = dvc.update(stage.path, to_remote=True) + (updated,) = dvc.update(stage.path, to_remote=True) + + assert stage.deps[0].hash_info != updated.deps[0].hash_info + assert stage.outs[0].hash_info != updated.outs[0].hash_info dvc.pull("data") assert (tmp_dir / "data").read_text() == { @@ -424,7 +430,10 @@ def test_update_import_url_to_remote_directory_changed_contents( local_workspace.gen( {"data": {"foo": "not_foo", "foo2": "foo", "bar": {"baz2": "baz2"}}} ) - stage = dvc.update(stage.path, to_remote=True) + (updated,) = dvc.update(stage.path, to_remote=True) + + assert stage.deps[0].hash_info != updated.deps[0].hash_info + assert stage.outs[0].hash_info != updated.outs[0].hash_info dvc.pull("data") assert (tmp_dir / "data").read_text() == { @@ -441,7 +450,10 @@ def test_update_import_url_to_remote_directory_same_hash( stage = dvc.imp_url("remote://workspace/data", to_remote=True) local_workspace.gen({"data": {"foo": "baz", "bar": {"baz": "foo"}, "same": "same"}}) - stage = dvc.update(stage.path, to_remote=True) + (updated,) = dvc.update(stage.path, to_remote=True) + + assert stage.deps[0].hash_info != updated.deps[0].hash_info + assert stage.outs[0].hash_info != updated.outs[0].hash_info dvc.pull("data") assert (tmp_dir / "data").read_text() == {