mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
stage.save: Remove merge_versioned option.
If we want `add`, `commit` and `move` to work for cloud versioning, option must be always True so it is the same as not having it. Closes #8828 (We were not passing `merge_versioned=True` in `dvc commit`)
This commit is contained in:
+1
-1
@@ -194,7 +194,7 @@ def add( # noqa: C901
|
||||
stage.transfer(source, to_remote=to_remote, odb=odb, **kwargs)
|
||||
else:
|
||||
try:
|
||||
stage.save(merge_versioned=True)
|
||||
stage.save()
|
||||
if not no_commit:
|
||||
stage.commit()
|
||||
except CacheLinkError:
|
||||
|
||||
@@ -228,7 +228,7 @@ def update_worktree_stages(
|
||||
)
|
||||
continue
|
||||
_fetch_out_changes(out, local_index, remote_index, remote)
|
||||
stage.save(merge_versioned=True)
|
||||
stage.save()
|
||||
for out in stage.outs:
|
||||
_update_out_meta(out, remote_index)
|
||||
stage.dump(with_files=True, update_pipeline=False)
|
||||
|
||||
+17
-26
@@ -486,17 +486,11 @@ class Stage(params.StageParams):
|
||||
logger.debug("Computed %s md5: '%s'", self, m)
|
||||
return m
|
||||
|
||||
def save(
|
||||
self,
|
||||
allow_missing: bool = False,
|
||||
merge_versioned: bool = False,
|
||||
run_cache: bool = True,
|
||||
):
|
||||
def save(self, allow_missing: bool = False, run_cache: bool = True):
|
||||
self.save_deps(allow_missing=allow_missing)
|
||||
|
||||
self.save_outs(
|
||||
allow_missing=allow_missing, merge_versioned=merge_versioned
|
||||
)
|
||||
self.save_outs(allow_missing=allow_missing)
|
||||
|
||||
self.md5 = self.compute_md5()
|
||||
|
||||
if run_cache:
|
||||
@@ -512,29 +506,26 @@ class Stage(params.StageParams):
|
||||
if not allow_missing:
|
||||
raise
|
||||
|
||||
def save_outs(
|
||||
self, allow_missing: bool = False, merge_versioned: bool = False
|
||||
):
|
||||
def save_outs(self, allow_missing: bool = False):
|
||||
from dvc.output import OutputDoesNotExistError
|
||||
|
||||
from .exceptions import StageFileDoesNotExistError, StageNotFound
|
||||
|
||||
if merge_versioned:
|
||||
try:
|
||||
old = self.reload()
|
||||
old_outs = {out.def_path: out for out in old.outs}
|
||||
merge_versioned = any(
|
||||
(
|
||||
out.files is not None
|
||||
or (
|
||||
out.meta is not None
|
||||
and out.meta.version_id is not None
|
||||
)
|
||||
try:
|
||||
old = self.reload()
|
||||
old_outs = {out.def_path: out for out in old.outs}
|
||||
merge_versioned = any(
|
||||
(
|
||||
out.files is not None
|
||||
or (
|
||||
out.meta is not None
|
||||
and out.meta.version_id is not None
|
||||
)
|
||||
for out in old_outs.values()
|
||||
)
|
||||
except (StageFileDoesNotExistError, StageNotFound):
|
||||
merge_versioned = False
|
||||
for out in old_outs.values()
|
||||
)
|
||||
except (StageFileDoesNotExistError, StageNotFound):
|
||||
merge_versioned = False
|
||||
|
||||
for out in self.outs:
|
||||
try:
|
||||
|
||||
@@ -245,3 +245,61 @@ def test_imported_entries_unchanged(tmp_dir, dvc, erepo_dir):
|
||||
stage = dvc.imp(os.fspath(erepo_dir), "file")
|
||||
|
||||
assert stage.changed_entries() == ([], [], None)
|
||||
|
||||
|
||||
def test_commit_updates_to_cloud_versioning_dir(tmp_dir, dvc):
|
||||
data_dvc = tmp_dir / "data.dvc"
|
||||
data_dvc.dump(
|
||||
{
|
||||
"outs": [
|
||||
{
|
||||
"path": "data",
|
||||
"files": [
|
||||
{
|
||||
"size": 3,
|
||||
"version_id": "WYRG4BglP7pD.gEoJP6a4AqOhl.FRA.h",
|
||||
"etag": "acbd18db4cc2f85cedef654fccc4a4d8",
|
||||
"md5": "acbd18db4cc2f85cedef654fccc4a4d8",
|
||||
"relpath": "bar",
|
||||
},
|
||||
{
|
||||
"size": 3,
|
||||
"version_id": "0vL53tFVY5vVAoJ4HG2jCS1mEcohDPE0",
|
||||
"etag": "acbd18db4cc2f85cedef654fccc4a4d8",
|
||||
"md5": "acbd18db4cc2f85cedef654fccc4a4d8",
|
||||
"relpath": "foo",
|
||||
},
|
||||
],
|
||||
}
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
data = tmp_dir / "data"
|
||||
data.mkdir()
|
||||
(data / "foo").write_text("foo")
|
||||
(data / "bar").write_text("bar2")
|
||||
|
||||
dvc.commit("data", force=True)
|
||||
|
||||
assert (tmp_dir / "data.dvc").parse() == {
|
||||
"outs": [
|
||||
{
|
||||
"path": "data",
|
||||
"files": [
|
||||
{
|
||||
"size": 4,
|
||||
"md5": "224e2539f52203eb33728acd228b4432",
|
||||
"relpath": "bar",
|
||||
},
|
||||
{
|
||||
"size": 3,
|
||||
"version_id": "0vL53tFVY5vVAoJ4HG2jCS1mEcohDPE0",
|
||||
"etag": "acbd18db4cc2f85cedef654fccc4a4d8",
|
||||
"md5": "acbd18db4cc2f85cedef654fccc4a4d8",
|
||||
"relpath": "foo",
|
||||
},
|
||||
],
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user