jj/CHANGELOG.md
2022-04-10 09:13:51 -07:00

96 lines
3.4 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### New features
* The new `jj print` command prints the contents of a file in a revision.
* `jj move` and `jj squash` now lets you limit the set of changes to move by
specifying paths on the command line (in addition to the `--interactive`
mode). For example, use `jj move --to @-- foo` to move the changes to file
(or directory) `foo` in the working copy to the grandparent commit.
* The `$JJ_CONFIG` environment variable can now point to a directory. If it
does, all files in the directory will be read, in alphabetical order.
* You can now override the `$EDITOR` environment variable by setting the
`ui.editor` config. There is also a new `$JJ_EDITOR` environment variable,
which has even higher priority than the config.
### Fixed bugs
* Errors are now printed to stderr (they used to be printed to stdout).
* `jj untrack` now requires at least one path (allowing no arguments was a UX
bug).
* You now get a proper error message instead of a crash when `$EDITOR` doesn't
exist or exits with an error.
## [0.4.0] - 2022-04-02
### Breaking changes
* Dropped support for config in `~/.jjconfig`. Your configuration is now read
from `<config dir>/jj/config.toml`, where `<config dir>` is
`${XDG_CONFIG_HOME}` or `~/.config/` on Linux,
`~/Library/Application Support/` on macOS, and `~\AppData\Roaming\` on
Windows.
### New features
* You can now set an environment variable called `$JJ_CONFIG` to a path to a
config file. That will then be read instead of your regular config file. This
is mostly intended for testing and scripts.
* The [standard `$NO_COLOR` environment variable](https://no-color.org/) is now
respected.
* `jj new` now lets you specify a description with `--message/-m`.
* When you check out a commit, the old commit no longer automatically gets
abandoned if it's empty and has descendants, it only gets abandoned if it's
empty and does not have descendants.
* (#111) When undoing an earlier operation, any new commits on top of commits
from the undone operation will be rebased away. For example, let's say you
rebase commit A so it becomes a new commit A', and then you create commit B
on top of A'. If you now undo the rebase operation, commit B will be rebased
to be on top of A instead. The same logic is used if the repo was modified
by concurrent operations (so if one operation added B on top of A, and one
operation rebased A as A', then B would be automatically rebased on top of
A'). See #111 for more examples.
* `jj log` now accepts `-p`/`--patch` option.
### Fixed bugs
* Fixed crash on `jj init --git-repo=.` (it almost always crashed).
* When sharing the working copy with a Git repo, the automatic importing and
exporting (sometimes?) didn't happen on Windows.
## [0.3.3] - 2022-03-16
No changes, only trying to get the automated build to work.
## [0.3.2] - 2022-03-16
No changes, only trying to get the automated build to work.
## [0.3.1] - 2022-03-13
### Fixed bugs
- (#131) Fixed crash when `core.excludesFile` pointed to non-existent file, and
made leading `~/` in that config expand to `$HOME/`
## [0.3.0] - 2022-03-12
Last release before this changelog started.