Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## [0.14.0] - 2024-02-07 ### Deprecations * `jj checkout` and `jj merge` are both deprecated; use `jj new` instead to replace both of these commands in all instances. **Rationale**: `jj checkout` and `jj merge` both implement identical functionality, which is a subset of `jj new`. `checkout` creates a new working copy commit on top of a single specified revision, i.e. with one parent. `merge` creates a new working copy commit on top of *at least* two specified revisions, i.e. with two or more parents. The only difference between these commands and `jj new`, which *also* creates a new working copy commit, is that `new` can create a working copy commit on top of any arbitrary number of revisions, so it can handle both the previous cases at once. The only actual difference between these three commands is the command syntax and their name. These names were chosen to be familiar to users of other version control systems, but we instead encourage all users to adopt `jj new` instead; it is more general and easier to remember than both of these. `jj checkout` and `jj merge` will no longer be shown as part of `jj help`, but will still function for now, emitting a warning about their deprecation. **Deadline**: `jj checkout` and `jj merge` will be deleted and are expected become a **hard error later in 2024**. * `jj init --git` and `jj init --git-repo` are now deprecated and will be removed in the near future. Use `jj git init` instead. ### Breaking changes * (Minor) Diff summaries (e.g. `jj diff -s`) now use `D` for "Deleted" instead of `R` for "Removed". @joyously pointed out that `R` could also mean "Renamed". * `jj util completion` now takes the shell as a positional argument, not a flag. the previous behavior is deprecated, but supported for now. it will be removed in the future. ### New features * `jj util completion` now supports powershell and elvish. * Official binaries for macOS running on Apple Silicon (`aarch64-apple-darwin`) are now available, alongside the existing macOS x86 binaries. * New `jj op abandon` command is added to clean up the operation history. Git refs and commit objects can be further compacted by `jj util gc`. * `jj util gc` now removes unreachable operation, view, and Git objects. * `jj branch rename` will now warn if the renamed branch has a remote branch, since those will have to be manually renamed outside of `jj`. * `jj git push` gained a `--tracked` option, to push all the tracked branches. * There's now a virtual root operation, similar to the [virtual root commit](docs/glossary.md#root-commit). It appears at the end of `jj op log`. * `jj config list` gained a `--include-overridden` option to allow printing overridden config values. * `jj config list` now accepts `--user` or `--repo` option to specify config origin. * New `jj config path` command to print the config file path without launching an editor. * `jj tag list` command prints imported git tags. * `jj next` and `jj prev` now prompt in the event of the next/previous commit being ambiguous, instead of failing outright. * `jj resolve` now displays the file being resolved. * `jj workspace root` was aliased to `jj root`, for ease of discoverability * `jj diff` no longer shows the contents of binary files. * `jj git` now has an `init` command that initializes a git backed repo. * New template function `surround(prefix, suffix, content)` is added. ### Fixed bugs * Fixed snapshots of symlinks in `gitignore`-d directory. [#2878](jj-vcs/jj#2878) * Fixed data loss in dirty working copy when checked-out branch is rebased or abandoned by Git. [#2876](jj-vcs/jj#2876)
- Loading branch information