Beispiel #1
0
    def _check_dirty(self) -> bool:
        # NOTE: dirty DVC lock files must be restored to index state to
        # avoid checking out incorrect persist or checkpoint outs
        dirty = [diff.a_path for diff in self.scm.repo.index.diff(None)]
        to_checkout = [fname for fname in dirty if is_lock_file(fname)]
        self.scm.repo.index.checkout(paths=to_checkout, force=True)

        untracked = self.scm.repo.untracked_files
        to_remove = [fname for fname in untracked if is_lock_file(fname)]
        for fname in to_remove:
            remove(fname)
        return (len(dirty) - len(to_checkout) + len(untracked) -
                len(to_remove)) != 0
Beispiel #2
0
    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)
Beispiel #3
0
 def _prune_lockfiles(self):
     # NOTE: dirty DVC lock files must be restored to index state to
     # avoid checking out incorrect persist or checkpoint outs
     tree = self.scm.get_tree("HEAD")
     lock_files = [
         str(fname) for fname in tree.walk_files(self.scm.root_dir)
         if is_lock_file(fname)
     ]
     if lock_files:
         self.scm.reset(paths=lock_files)
         self.scm.checkout_paths(lock_files, force=True)
Beispiel #4
0
    def _prune_lockfiles(self):
        from dvc.dvcfile import is_lock_file

        # NOTE: dirty DVC lock files must be restored to index state to
        # avoid checking out incorrect persist or checkpoint outs
        fs = self.scm.get_fs("HEAD")
        lock_files = [
            str(fname) for fname in fs.walk_files(self.scm.root_dir)
            if is_lock_file(fname)
        ]
        if lock_files:

            self.scm.reset(paths=lock_files)
            self.scm.checkout_index(paths=lock_files, force=True)