Change8

3.63.0

Breaking Changes
📦 dvcView on GitHub →
1 breaking7 features🐛 4 fixes🔧 8 symbols

Summary

This release introduces several new CLI options and enhancements, adds granular change reporting, improves detection of file moves, and includes multiple bug fixes, with a breaking change to `dvc status --cloud` target handling.

⚠️ Breaking Changes

  • In `dvc status --cloud`, the `target` argument now treats a directory as a dataset path instead of searching for `.dvc` and `dvc.yaml` files inside it. To get the previous behavior, add the `--recursive` option.

Migration Steps

  1. If you relied on the previous behavior of `dvc status --cloud` with a directory target, add the `--recursive` flag to restore it.

✨ New Features

  • Added `--remote` option to `dvc data status --not-in-remote` to check files against a specified remote.
  • `exp show` now accepts multiple `--keep` and `--drop` arguments.
  • `dvc init` can initialize a DVC repository in an arbitrary directory.
  • `checkout` and `pull` now report a granular summary of changed files.
  • `data status` now detects file moves/renames by default.
  • `dvcignore` implementation shared between `check-ignore` and internal API, with improved support for unignore patterns (e.g., `!data/**`).
  • Shell completion now supports remote name completion in zsh/bash.

🐛 Bug Fixes

  • Fixed `dvc diff` to not show missing cache entries.
  • Handled missing DVC repository at Git HEAD in `dvc data status`.
  • Ensured entries appear in "Not in cache" when a directory entry is missing in `dvc diff`.
  • Corrected `dvc.yaml` file path in error messages when reading from git revisions.

🔧 Affected Symbols

dvc statusdvc data statusexp showdvc initcheckoutpulldata statusdvcignore