3.63.0
Breaking Changes📦 dvcView on GitHub →
⚠ 1 breaking✨ 7 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
- 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