diff --git a/dvc/repo/experiments/executor/base.py b/dvc/repo/experiments/executor/base.py index 96292e679..3e962af51 100644 --- a/dvc/repo/experiments/executor/base.py +++ b/dvc/repo/experiments/executor/base.py @@ -335,21 +335,17 @@ class BaseExecutor(ABC): # fetch experiments try: - dest_scm.fetch_refspecs( - self.git_url, - [f"{ref}:{ref}" for ref in refs], - on_diverged=on_diverged_ref, - force=force, - **kwargs, - ) + refspecs = [f"{ref}:{ref}" for ref in refs] # update last run checkpoint (if it exists) if has_checkpoint: - dest_scm.fetch_refspecs( - self.git_url, - [f"{EXEC_CHECKPOINT}:{EXEC_CHECKPOINT}"], - force=True, - **kwargs, - ) + refspecs.append(f"{EXEC_CHECKPOINT}:{EXEC_CHECKPOINT}") + dest_scm.fetch_refspecs( + self.git_url, + refspecs, + on_diverged=on_diverged_ref, + force=force or has_checkpoint, + **kwargs, + ) except SCMError: pass diff --git a/pyproject.toml b/pyproject.toml index 460aac33a..12ac1ad33 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,7 @@ dependencies = [ "rich>=10.13.0", "pyparsing>=2.4.7", "typing-extensions>=3.7.4", - "scmrepo==0.1.7", + "scmrepo==0.1.9", "dvc-render==0.1.0", "dvc-task==0.1.11", "dvclive>=1.2.2",