From dfe76c54d77713641fa38c9e952de6efb45a3458 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Wed, 22 Mar 2023 01:54:29 +0200 Subject: [PATCH] erepo: set subrepos/uninitialized explicitly --- dvc/dependency/repo.py | 8 +++++++- dvc/external_repo.py | 6 ------ dvc/repo/get.py | 7 ++++++- tests/unit/test_external_repo.py | 8 ++++++-- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/dvc/dependency/repo.py b/dvc/dependency/repo.py index 46b158a0e..0c9a902f2 100644 --- a/dvc/dependency/repo.py +++ b/dvc/dependency/repo.py @@ -222,7 +222,13 @@ class RepoDependency(Dependency): d = self.def_repo rev = self._get_rev(locked=locked) - return external_repo(d[self.PARAM_URL], rev=rev, **kwargs) + return external_repo( + d[self.PARAM_URL], + rev=rev, + subrepos=True, + uninitialized=True, + **kwargs, + ) def _get_rev(self, locked: bool = True): d = self.def_repo diff --git a/dvc/external_repo.py b/dvc/external_repo.py index 74acbf2d1..37dde9724 100644 --- a/dvc/external_repo.py +++ b/dvc/external_repo.py @@ -68,12 +68,6 @@ def external_repo( **kwargs, ) - if "subrepos" not in repo_kwargs: - repo_kwargs["subrepos"] = True - - if "uninitialized" not in repo_kwargs: - repo_kwargs["uninitialized"] = True - repo = Repo(**repo_kwargs) try: diff --git a/dvc/repo/get.py b/dvc/repo/get.py index 6e5498094..7ef69ceac 100644 --- a/dvc/repo/get.py +++ b/dvc/repo/get.py @@ -52,7 +52,12 @@ def get(url, path, out=None, rev=None, jobs=None): cache_types = ["reflink", "hardlink", "copy"] try: with external_repo( - url=url, rev=rev, cache_dir=tmp_dir, cache_types=cache_types + url=url, + rev=rev, + subrepos=True, + uninitialized=True, + cache_dir=tmp_dir, + cache_types=cache_types, ) as repo: from dvc.fs.data import DataFileSystem diff --git a/tests/unit/test_external_repo.py b/tests/unit/test_external_repo.py index 6ed52cef3..cedc00a38 100644 --- a/tests/unit/test_external_repo.py +++ b/tests/unit/test_external_repo.py @@ -25,7 +25,7 @@ def test_hook_is_called(tmp_dir, erepo_dir, mocker): repo.scm_gen("foo", "foo", commit=f"git add {repo}/foo") repo.dvc_gen("bar", "bar", commit=f"dvc add {repo}/bar") - with external_repo(str(erepo_dir)) as repo: + with external_repo(str(erepo_dir), subrepos=True, uninitialized=True) as repo: spy = mocker.spy(repo.dvcfs.fs, "repo_factory") list(repo.dvcfs.walk("", ignore_subrepos=False)) # drain @@ -62,7 +62,11 @@ def test_subrepo_is_constructed_properly( cache_dir = make_tmp_dir("temp-cache") with external_repo( - str(tmp_dir), cache_dir=str(cache_dir), cache_types=["symlink"] + str(tmp_dir), + subrepos=True, + uninitialized=True, + cache_dir=str(cache_dir), + cache_types=["symlink"], ) as repo: spy = mocker.spy(repo.dvcfs.fs, "repo_factory")