From 748bda8950b475aa95a91fd73ab1b9af8557f6ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Rowlands=20=28=EB=B3=80=EA=B8=B0=ED=98=B8=29?= Date: Tue, 9 Feb 2021 21:38:46 +0900 Subject: [PATCH] exp run: clean untracked lockfiles before running (#5426) * exp run/reset: clean untracked lockfiles * update log level for run -f/--force message --- dvc/repo/experiments/__init__.py | 14 ++++++++++++++ dvc/repo/experiments/executor/base.py | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/dvc/repo/experiments/__init__.py b/dvc/repo/experiments/__init__.py index 1c7723927..abd6965c0 100644 --- a/dvc/repo/experiments/__init__.py +++ b/dvc/repo/experiments/__init__.py @@ -258,9 +258,22 @@ class Experiments: if is_lock_file(fname) ] if lock_files: + self.scm.reset(paths=lock_files) self.scm.checkout_index(paths=lock_files, force=True) + def _prune_untracked_lockfiles(self): + from dvc.dvcfile import is_lock_file + from dvc.utils.fs import remove + + untracked = [ + fname + for fname in self.scm.untracked_files() + if is_lock_file(fname) + ] + for fname in untracked: + remove(fname) + def _stash_msg( self, rev: str, @@ -698,6 +711,7 @@ class Experiments: # result in conflict between workspace params and stashed CLI params). self.scm.reset(hard=True) with self.scm.detach_head(entry.rev): + self._prune_untracked_lockfiles() rev = self.stash.pop() self.scm.set_ref(EXEC_BASELINE, entry.baseline_rev) if entry.branch: diff --git a/dvc/repo/experiments/executor/base.py b/dvc/repo/experiments/executor/base.py index 9dd061905..a8ca5a11c 100644 --- a/dvc/repo/experiments/executor/base.py +++ b/dvc/repo/experiments/executor/base.py @@ -250,7 +250,9 @@ class BaseExecutor(ABC): args, kwargs = cls._repro_args(dvc) repro_force = kwargs.get("force", False) - logger.debug("force = %s", str(repro_force)) + logger.trace( # type: ignore[attr-defined] + "Executor repro with force = '%s'", str(repro_force) + ) # NOTE: for checkpoint experiments we handle persist outs slightly # differently than normal: