diff --git a/dvc/repo/experiments/executor/base.py b/dvc/repo/experiments/executor/base.py index 3fb27e7121..fe99680d7c 100644 --- a/dvc/repo/experiments/executor/base.py +++ b/dvc/repo/experiments/executor/base.py @@ -334,21 +334,17 @@ def on_diverged_ref(orig_ref: str, new_rev: str): # fetch experiments try: + refspecs = [f"{ref}:{ref}" for ref in refs] + # update last run checkpoint (if it exists) + if has_checkpoint: + refspecs.append(f"{EXEC_CHECKPOINT}:{EXEC_CHECKPOINT}") dest_scm.fetch_refspecs( self.git_url, - [f"{ref}:{ref}" for ref in refs], + refspecs, on_diverged=on_diverged_ref, - force=force, + force=force or has_checkpoint, **kwargs, ) - # 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, - ) except SCMError: pass diff --git a/pyproject.toml b/pyproject.toml index d99d17e560..8d644d2056 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",