2022-03-12 18:48:51 +00:00
|
|
|
# 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]
|
|
|
|
|
2022-10-25 13:08:11 +00:00
|
|
|
### Breaking changes
|
|
|
|
|
2023-01-19 04:54:19 +00:00
|
|
|
* The minimum supported Rust version (MSRV) is now 1.61.0.
|
|
|
|
|
2022-12-18 03:56:21 +00:00
|
|
|
* The `jj touchup` command was renamed to `jj diffedit`.
|
|
|
|
|
2022-12-21 01:36:51 +00:00
|
|
|
* The `-i` option to `jj restore` was removed in favor of new `--from`/`--to`
|
|
|
|
options to `jj diffedit`.
|
|
|
|
|
2023-01-07 01:49:31 +00:00
|
|
|
* To report the situation when a change id corresponds to multiple visible
|
|
|
|
commits, `jj log` now prints the change id in red and puts `??` after it.
|
|
|
|
Previously, it printed the word "divergent".
|
|
|
|
|
2023-01-14 10:43:23 +00:00
|
|
|
* `jj log` prefixes commit descriptions with "(empty)" when they contain no
|
|
|
|
change compared to their parents.
|
|
|
|
|
2022-12-05 16:38:47 +00:00
|
|
|
### New features
|
|
|
|
|
2022-12-14 22:33:00 +00:00
|
|
|
* The default log format now uses the committer timestamp instead of the author
|
|
|
|
timestamp.
|
|
|
|
|
2022-12-13 12:24:24 +00:00
|
|
|
* `jj log --summary --patch` now shows both summary and diff outputs.
|
|
|
|
|
2022-12-17 22:31:12 +00:00
|
|
|
* `jj git push` now accepts multiple `--branch`/`--change` arguments
|
|
|
|
|
2023-01-05 04:55:20 +00:00
|
|
|
* `jj config list` command prints values from config and `config edit` opens
|
|
|
|
the config in an editor.
|
2022-12-13 06:22:08 +00:00
|
|
|
|
2023-01-03 02:26:59 +00:00
|
|
|
* `jj debug config-schema` command prints out JSON schema for the jj TOML config
|
|
|
|
file format.
|
|
|
|
|
2023-01-05 00:34:56 +00:00
|
|
|
* `jj resolve --list` can now describe the complexity of conflicts.
|
|
|
|
|
2022-12-24 01:57:10 +00:00
|
|
|
* `jj resolve` now notifies the user of remaining conflicts, if any, on success.
|
|
|
|
This can be prevented by the new `--quiet` option.
|
|
|
|
|
2023-01-02 05:18:38 +00:00
|
|
|
* Per-repository configuration is now read from `.jj/repo/config.toml`.
|
|
|
|
|
2023-01-07 03:43:46 +00:00
|
|
|
* The `ui.relative-timestamps` option now also affects `jj op log`.
|
|
|
|
|
2023-01-10 02:59:21 +00:00
|
|
|
* Background colors, bold text, and underlining are now supported. You can set
|
|
|
|
e.g. `color.error = { bg = "red", bold = true, underline = true }` in your
|
|
|
|
`~/.jjconfig.toml`.
|
2023-01-07 17:34:15 +00:00
|
|
|
|
2023-01-14 10:43:23 +00:00
|
|
|
* The `empty` condition in templates is true when the commit makes no change to
|
|
|
|
the three compared to its parents.
|
|
|
|
|
2023-01-12 10:01:35 +00:00
|
|
|
* `branches([needle])` revset function now takes `needle` as an optional
|
|
|
|
argument and matches just the branches whose name contains `needle`.
|
|
|
|
|
|
|
|
* `remote_branches([branch_needle[, remote_needle]])` now takes `branch_needle`
|
|
|
|
and `remote_needle` as optional arguments and matches just the branches whose
|
|
|
|
name contains `branch_needle` and remote contains `remote_needle`.
|
|
|
|
|
2023-01-17 13:27:49 +00:00
|
|
|
* Default remotes can be configured for the `jj git fetch` and `jj git push`
|
|
|
|
operations ("origin" by default) using the `git.fetch` and `git.push`
|
|
|
|
configuration entries.
|
|
|
|
|
2023-01-10 06:54:10 +00:00
|
|
|
* `jj duplicate` can now duplicate multiple changes in one go. This preserves
|
|
|
|
any parent-child relationships between them. For example, the entire tree of
|
|
|
|
descendants of `abc` can be duplicated with `jj duplicate abc:`.
|
|
|
|
|
2023-01-18 05:06:36 +00:00
|
|
|
* `jj log` now highlights the shortest unique prefix of every commit and change id
|
|
|
|
with brackets. To disable, set the new `ui.unique-prefixes` option to `none`
|
2023-01-07 03:00:37 +00:00
|
|
|
|
2023-01-18 06:56:09 +00:00
|
|
|
* `jj print` was renamed to `jj cat`. `jj print` remains as an alias.
|
|
|
|
|
2022-12-05 16:38:47 +00:00
|
|
|
### Fixed bugs
|
|
|
|
|
2022-12-09 04:04:33 +00:00
|
|
|
* When sharing the working copy with a Git repo, we used to forget to export
|
|
|
|
branches to Git when only the working copy had changed. That's now fixed.
|
|
|
|
|
2022-12-21 04:47:10 +00:00
|
|
|
* Commit description set by `-m`/`--message` is now terminated with a newline
|
|
|
|
character, just like descriptions set by editor are.
|
|
|
|
|
2023-01-10 03:52:06 +00:00
|
|
|
* The `-R`/`--repository` path must be a valid workspace directory. Its
|
|
|
|
ancestor directories are no longer searched.
|
|
|
|
|
2023-01-13 20:01:50 +00:00
|
|
|
* Fixed a crash when trying to access a commit that's never been imported into
|
|
|
|
the jj repo from a Git repo. They will now be considered as non-existent if
|
|
|
|
referenced explicitly instead of crashing.
|
|
|
|
|
2023-01-14 17:56:33 +00:00
|
|
|
* Fixed handling of escaped characters in .gitignore (only keep trailing spaces
|
|
|
|
if escaped properly).
|
|
|
|
|
2023-01-16 19:22:10 +00:00
|
|
|
* `jj undo` now works after `jj duplicate`.
|
|
|
|
|
2023-01-15 07:28:36 +00:00
|
|
|
* `jj duplicate` followed by `jj rebase` of a tree containing both the original
|
|
|
|
and duplicate commit no longer crashes. The fix should also resolve any remaining
|
|
|
|
instances of https://github.com/martinvonz/jj/issues/27.
|
|
|
|
|
2023-01-22 09:24:20 +00:00
|
|
|
* Fix the output of `jj debug completion --help` by reversing fish and zsh text.
|
|
|
|
|
2022-12-05 16:38:47 +00:00
|
|
|
### Contributors
|
|
|
|
|
|
|
|
Thanks to the people who made this release happen!
|
|
|
|
|
2022-12-08 23:40:48 +00:00
|
|
|
* Martin von Zweigbergk (@martinvonz)
|
2022-12-06 00:44:00 +00:00
|
|
|
* Danny Hooper (hooper@google.com)
|
2022-12-09 13:55:59 +00:00
|
|
|
* Yuya Nishihara (@yuja)
|
2022-12-17 22:31:12 +00:00
|
|
|
* Ilya Grigoriev (@ilyagr)
|
2022-12-13 06:22:08 +00:00
|
|
|
* David Barnett (@dbarnett)
|
2022-12-08 23:40:48 +00:00
|
|
|
|
2022-12-06 04:31:59 +00:00
|
|
|
## [0.6.1] - 2022-12-05
|
|
|
|
|
|
|
|
No changes, only changed to a released version of the `thrift` crate dependency.
|
|
|
|
|
2022-12-05 16:38:47 +00:00
|
|
|
## [0.6.0] - 2022-12-05
|
|
|
|
|
|
|
|
### Breaking changes
|
|
|
|
|
2022-10-25 13:08:11 +00:00
|
|
|
* Dropped candidates set argument from `description(needle)`, `author(needle)`,
|
2022-10-25 13:20:59 +00:00
|
|
|
`committer(needle)`, `merges()` revsets. Use `x & description(needle)`
|
|
|
|
instead.
|
2022-10-25 13:08:11 +00:00
|
|
|
|
2022-11-16 14:35:12 +00:00
|
|
|
* Adjusted precedence of revset union/intersection/difference operators.
|
|
|
|
`x | y & z` is now equivalent to `x | (y & z)`.
|
2023-01-12 10:01:35 +00:00
|
|
|
|
2022-11-05 01:24:20 +00:00
|
|
|
* Support for open commits has been dropped. The `ui.enable-open-commits` config
|
2022-11-05 00:15:35 +00:00
|
|
|
that was added in 0.5.0 is no longer respected. The `jj open/close` commands
|
|
|
|
have been deleted.
|
2023-01-12 10:01:35 +00:00
|
|
|
|
2022-11-05 00:15:35 +00:00
|
|
|
* `jj commit` is now a separate command from `jj close` (which no longer
|
|
|
|
exists). The behavior has changed slightly. It now always asks for a
|
|
|
|
description, even if there already was a description set. It now also only
|
|
|
|
works on the working-copy commit (there's no `-r` argument).
|
2022-10-29 21:48:13 +00:00
|
|
|
|
2022-10-02 17:09:46 +00:00
|
|
|
* If a workspace's working-copy commit has been updated from another workspace,
|
|
|
|
most commands in that workspace will now fail. Use the new
|
|
|
|
`jj workspace update-stale` command to update the workspace to the new
|
|
|
|
working-copy commit. (The old behavior was to automatically update the
|
|
|
|
workspace.)
|
|
|
|
|
2022-10-19 18:44:39 +00:00
|
|
|
### New features
|
|
|
|
|
2022-10-18 18:07:35 +00:00
|
|
|
* Commands with long output are paginated.
|
2022-12-04 06:03:38 +00:00
|
|
|
[#9](https://github.com/martinvonz/jj/issues/9)
|
2022-10-18 18:07:35 +00:00
|
|
|
|
2022-10-19 18:44:39 +00:00
|
|
|
* The new `jj git remote rename` command allows git remotes to be renamed
|
|
|
|
in-place.
|
|
|
|
|
2022-10-30 08:23:45 +00:00
|
|
|
* The new `jj resolve` command allows resolving simple conflicts with
|
|
|
|
an external 3-way-merge tool.
|
|
|
|
|
2022-10-20 21:18:34 +00:00
|
|
|
* `jj git push` will search `@-` for branches to push if `@` has none.
|
|
|
|
|
2022-11-01 08:11:22 +00:00
|
|
|
* The new revset function `file(pattern..)` finds commits modifying the
|
|
|
|
paths specified by the `pattern..`.
|
2022-10-23 04:14:00 +00:00
|
|
|
|
2022-11-15 08:12:37 +00:00
|
|
|
* The new revset function `empty()` finds commits modifying no files.
|
|
|
|
|
2022-11-26 11:41:55 +00:00
|
|
|
* Added support for revset aliases. New symbols and functions can be configured
|
|
|
|
by `revset-aliases.<name> = <expression>`.
|
2022-11-25 10:27:13 +00:00
|
|
|
|
2022-11-07 21:35:34 +00:00
|
|
|
* It is now possible to specify configuration options on the command line
|
2022-11-14 17:26:04 +00:00
|
|
|
with the new `--config-toml` global option.
|
2022-10-31 01:29:26 +00:00
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* `jj git` subcommands will prompt for credentials when required for HTTPS
|
|
|
|
remotes rather than failing.
|
|
|
|
[#469](https://github.com/martinvonz/jj/issues/469)
|
2022-11-06 18:15:44 +00:00
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* Branches that have a different target on some remote than they do locally are
|
|
|
|
now indicated by an asterisk suffix (e.g. `main*`) in `jj log`.
|
|
|
|
[#254](https://github.com/martinvonz/jj/issues/254)
|
2022-11-04 16:39:46 +00:00
|
|
|
|
2022-11-13 18:01:11 +00:00
|
|
|
* The commit ID was moved from first on the line in `jj log` output to close to
|
|
|
|
the end. The goal is to encourage users to use the change ID instead, since
|
|
|
|
that is generally more convenient, and it reduces the risk of creating
|
|
|
|
divergent commits.
|
|
|
|
|
2022-11-13 06:29:06 +00:00
|
|
|
* The username and hostname that appear in the operation log are now
|
|
|
|
configurable via config options `operation.username` and `operation.hostname`.
|
|
|
|
|
2022-11-20 00:13:39 +00:00
|
|
|
* `jj git` subcommands now support credential helpers.
|
|
|
|
|
2022-11-18 23:41:35 +00:00
|
|
|
* `jj log` will warn if it appears that the provided path was meant to be a
|
|
|
|
revset.
|
|
|
|
|
2022-11-20 03:38:25 +00:00
|
|
|
* The new global flag `-v/--verbose` will turn on debug logging to give
|
2023-01-12 10:01:35 +00:00
|
|
|
some additional insight into what is happening behind the scenes.
|
2022-11-20 03:38:25 +00:00
|
|
|
Note: This is not comprehensively supported by all operations yet.
|
|
|
|
|
2022-11-26 01:33:24 +00:00
|
|
|
* `jj log`, `jj show`, and `jj obslog` now all support showing relative
|
|
|
|
timestamps by setting `ui.relative-timestamps = true` in the config file.
|
|
|
|
|
2022-10-20 23:33:14 +00:00
|
|
|
### Fixed bugs
|
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* A bug in the export of branches to Git caused spurious conflicted branches.
|
|
|
|
This typically occurred when running in a working copy colocated with Git
|
|
|
|
(created by running `jj init --git-dir=.`).
|
|
|
|
[#463](https://github.com/martinvonz/jj/issues/463)
|
2023-01-12 10:01:35 +00:00
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* When exporting branches to Git, we used to fail if some branches could not be
|
|
|
|
exported (e.g. because Git doesn't allow a branch called `main` and another
|
|
|
|
branch called `main/sub`). We now print a warning about these branches
|
2022-12-03 08:02:15 +00:00
|
|
|
instead.
|
2022-12-03 17:44:21 +00:00
|
|
|
[#493](https://github.com/martinvonz/jj/issues/493)
|
2022-12-03 08:02:15 +00:00
|
|
|
|
2022-12-02 23:09:07 +00:00
|
|
|
* If you had modified branches in jj and also modified branches in conflicting
|
|
|
|
ways in Git, `jj git export` used to overwrite the changes you made in Git.
|
|
|
|
We now print a warning about these branches instead.
|
|
|
|
|
2022-10-20 23:33:14 +00:00
|
|
|
* `jj edit root` now fails gracefully.
|
|
|
|
|
2022-10-28 19:39:28 +00:00
|
|
|
* `jj git import` used to abandon a commit if Git branches and tags referring
|
|
|
|
to it were removed. We now keep it if a detached HEAD refers to it.
|
|
|
|
|
2022-10-28 23:18:56 +00:00
|
|
|
* `jj git import` no longer crashes when all Git refs are removed.
|
|
|
|
|
2022-11-23 19:34:38 +00:00
|
|
|
* Git submodules are now ignored completely. Earlier, files present in the
|
|
|
|
submodule directory in the working copy would become added (tracked), and
|
|
|
|
later removed if you checked out another commit. You can now use `git` to
|
|
|
|
populate the submodule directory and `jj` will leave it alone.
|
|
|
|
|
2022-12-03 17:49:09 +00:00
|
|
|
* Git's GC could remove commits that were referenced from jj in some cases. We
|
|
|
|
are now better at adding Git refs to prevent that.
|
|
|
|
[#815](https://github.com/martinvonz/jj/issues/815)
|
|
|
|
|
2022-12-05 04:56:02 +00:00
|
|
|
* When the working-copy commit was a merge, `jj status` would list only the
|
|
|
|
first parent, and the diff summary would be against that parent. The output
|
|
|
|
now lists all parents and the diff summary is against the auto-merged parents.
|
|
|
|
|
2022-11-28 07:38:17 +00:00
|
|
|
### Contributors
|
|
|
|
|
|
|
|
Thanks to the people who made this release happen!
|
|
|
|
|
|
|
|
* Martin von Zweigbergk (@martinvonz)
|
|
|
|
* Benjamin Saunders (@Ralith)
|
|
|
|
* Yuya Nishihara (@yuja)
|
|
|
|
* Glen Choo (@chooglen)
|
|
|
|
* Ilya Grigoriev (@ilyagr)
|
|
|
|
* Ruben Slabbert (@rslabbert)
|
|
|
|
* Waleed Khan (@arxanas)
|
2022-11-30 16:43:13 +00:00
|
|
|
* Sean E. Russell (@xxxserxxx)
|
2022-11-23 19:34:38 +00:00
|
|
|
* Pranay Sashank (@pranaysashank)
|
2022-12-05 00:30:32 +00:00
|
|
|
* Luke Granger-Brown (@lukegb)
|
2022-11-28 07:38:17 +00:00
|
|
|
|
|
|
|
|
2022-10-18 04:45:04 +00:00
|
|
|
## [0.5.1] - 2022-10-17
|
|
|
|
|
|
|
|
No changes (just trying to get automated GitHub release to work).
|
|
|
|
|
2022-10-17 20:41:46 +00:00
|
|
|
## [0.5.0] - 2022-10-17
|
|
|
|
|
2022-04-24 19:31:54 +00:00
|
|
|
### Breaking changes
|
|
|
|
|
2022-08-25 22:18:14 +00:00
|
|
|
* Open commits are now disabled by default. That means that `jj checkout` will
|
|
|
|
always create a new change on top of the specified commit and will let you
|
|
|
|
edit that in the working copy. Set `ui.enable-open-commits = true` to restore
|
|
|
|
the old behavior and let us know that you did so we know how many people
|
|
|
|
prefer the workflow with open commits.
|
|
|
|
|
2022-04-24 19:31:54 +00:00
|
|
|
* `jj [op] undo` and `jj op restore` used to take the operation to undo or
|
|
|
|
restore to as an argument to `-o/--operation`. It is now a positional
|
|
|
|
argument instead (i.e. `jj undo -o abc123` is now written `jj undo abc123`).
|
|
|
|
|
2022-05-07 13:57:13 +00:00
|
|
|
* An alias that is not configured as a string list (e.g. `my-status = "status"`
|
|
|
|
instead of `my-status = ["status"]`) is now an error instead of a warning.
|
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* `jj log` now defaults to showing only commits that are not on any remote
|
|
|
|
branches (plus their closest commit on the remote branch for context). This
|
|
|
|
set of commits can be overridden by setting `ui.default-revset`. Use
|
|
|
|
`jj log -r 'all()'` for the old behavior. Read more about revsets
|
2022-05-14 15:55:46 +00:00
|
|
|
[here](https://github.com/martinvonz/jj/blob/main/docs/revsets.md).
|
2022-12-03 17:44:21 +00:00
|
|
|
[#250](https://github.com/martinvonz/jj/issues/250)
|
2022-05-14 15:55:46 +00:00
|
|
|
|
2022-05-21 13:38:56 +00:00
|
|
|
* `jj new` now always checks out the new commit (used to be only if the parent
|
|
|
|
was `@`).
|
|
|
|
|
2022-08-31 05:31:18 +00:00
|
|
|
* `jj merge` now checks out the new commit. The command now behaves exactly
|
|
|
|
like `jj new`, except that it requires at least two arguments.
|
|
|
|
|
2022-06-23 09:14:11 +00:00
|
|
|
* When the working-copy commit is abandoned by `jj abandon` and the parent
|
|
|
|
commit is open, a new working-copy commit will be created on top (the open
|
|
|
|
parent commit used to get checked out).
|
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* `jj branch` now uses subcommands like `jj branch create` and
|
2022-06-06 03:23:01 +00:00
|
|
|
`jj branch forget` instead of options like `jj branch --forget`.
|
2022-12-03 17:44:21 +00:00
|
|
|
[#330](https://github.com/martinvonz/jj/issues/330)
|
2022-06-06 03:23:01 +00:00
|
|
|
|
2022-06-10 02:42:15 +00:00
|
|
|
* The [`$NO_COLOR` environment variable](https://no-color.org/) no longer
|
|
|
|
overrides the `ui.color` configuration if explicitly set.
|
|
|
|
|
2022-06-28 00:36:13 +00:00
|
|
|
* `jj edit` has been renamed to `jj touchup`, and `jj edit` is now a new command
|
|
|
|
with different behavior. The new `jj edit` lets you edit a commit in the
|
|
|
|
working copy, even if the specified commit is closed.
|
2022-06-19 03:22:54 +00:00
|
|
|
|
2022-06-19 03:05:08 +00:00
|
|
|
* `jj git push` no longer aborts if you attempt to push an open commit (but it
|
|
|
|
now aborts if a commit does not have a description).
|
|
|
|
|
2022-07-13 04:14:02 +00:00
|
|
|
* `jj git push` now pushes only branches pointing to the `@` by default. Use
|
|
|
|
`--all` to push all branches.
|
|
|
|
|
2022-09-18 21:46:12 +00:00
|
|
|
* The `checkouts` template keyword is now called `working_copies`, and
|
|
|
|
`current_checkout` is called `current_working_copy`.
|
|
|
|
|
2022-04-06 18:00:27 +00:00
|
|
|
### New features
|
|
|
|
|
2022-08-30 18:47:38 +00:00
|
|
|
* The new `jj interdiff` command compares the changes in commits, ignoring
|
|
|
|
changes from intervening commits.
|
|
|
|
|
2022-04-13 17:53:50 +00:00
|
|
|
* `jj rebase` now accepts a `--branch/-b <revision>` argument, which can be used
|
|
|
|
instead of `-r` or `-s` to specify which commits to rebase. It will rebase the
|
2022-04-14 06:53:35 +00:00
|
|
|
whole branch, relative to the destination. The default mode has changed from
|
|
|
|
`-r @` to `-b @`.
|
2022-04-13 17:53:50 +00:00
|
|
|
|
2022-04-06 18:00:27 +00:00
|
|
|
* The new `jj print` command prints the contents of a file in a revision.
|
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* The new `jj git remotes list` command lists the configured remotes and their
|
|
|
|
URLs.
|
|
|
|
[#243](https://github.com/martinvonz/jj/issues/243)
|
2022-04-25 20:34:13 +00:00
|
|
|
|
2022-04-09 17:27:17 +00:00
|
|
|
* `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.
|
2022-04-09 16:58:33 +00:00
|
|
|
|
2022-08-31 05:24:35 +00:00
|
|
|
* When `jj move/squash/unsquash` abandons the source commit because it became
|
|
|
|
empty and both the source and the destination commits have non-empty
|
|
|
|
descriptions, it now asks for a combined description. If either description
|
|
|
|
was empty, it uses the other without asking.
|
|
|
|
|
2022-04-09 18:35:28 +00:00
|
|
|
* `jj split` now lets you specify on the CLI which paths to include in the first
|
|
|
|
commit. The interactive diff-editing is not started when you do that.
|
|
|
|
|
2022-02-06 23:10:50 +00:00
|
|
|
* Sparse checkouts are now supported. In fact, all working copies are now
|
|
|
|
"sparse", only to different degrees. Use the `jj sparse` command to manage
|
2022-05-02 19:58:32 +00:00
|
|
|
the paths included in the sparse checkout.
|
2022-02-06 23:10:50 +00:00
|
|
|
|
2022-05-08 06:54:51 +00:00
|
|
|
* Configuration is now also read from `~/.jjconfig.toml`.
|
|
|
|
|
2022-04-09 23:14:42 +00:00
|
|
|
* 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.
|
|
|
|
|
2022-05-10 17:04:10 +00:00
|
|
|
* The `$VISUAL` environment is now respected and overrides `$EDITOR`. The new
|
|
|
|
`ui.editor` config has higher priority than both of them. There is also a new
|
|
|
|
`$JJ_EDITOR` environment variable, which has even higher priority than the
|
|
|
|
config.
|
2022-04-10 05:42:27 +00:00
|
|
|
|
2022-04-27 16:42:18 +00:00
|
|
|
* You can now use `-` and `+` in revset symbols. You used to have to quote
|
|
|
|
branch names like `my-feature` in nested quotes (outer layer for your shell)
|
|
|
|
like `jj co '"my-feature"'`. The quoting is no longer needed.
|
|
|
|
|
2022-04-14 04:26:21 +00:00
|
|
|
* The new revset function `connected(x)` is the same as `x:x`.
|
|
|
|
|
2022-04-13 20:55:47 +00:00
|
|
|
* The new revset function `roots(x)` finds commits in the set that are not
|
|
|
|
descendants of other commits in the set.
|
|
|
|
|
2022-04-23 04:30:33 +00:00
|
|
|
* ssh-agent is now detected even if `$SSH_AGENT_PID` is not set (as long as
|
|
|
|
`$SSH_AUTH_SOCK` is set). This should help at least macOS users where
|
|
|
|
ssh-agent is launched by default and only `$SSH_AUTH_SOCK` is set.
|
|
|
|
|
2022-03-27 05:33:08 +00:00
|
|
|
* When importing from a git, any commits that are no longer referenced on the
|
|
|
|
git side will now be abandoned on the jj side as well. That means that
|
|
|
|
`jj git fetch` will now abandon unreferenced commits and rebase any local
|
|
|
|
changes you had on top.
|
|
|
|
|
2022-04-29 03:58:41 +00:00
|
|
|
* `jj git push` gained a `--change <revision>` argument. When that's used, it
|
|
|
|
will create a branch named after the revision's change ID, so you don't have
|
2022-05-24 09:52:45 +00:00
|
|
|
to create a branch yourself. By default, the branch name will start with
|
|
|
|
`push-`, but this can be overridden by the `push.branch-prefix` config
|
|
|
|
setting.
|
2022-04-29 03:58:41 +00:00
|
|
|
|
2022-05-27 15:54:47 +00:00
|
|
|
* `jj git push` now aborts if you attempt to push a commit without a
|
|
|
|
description or with the placeholder "(no name/email configured)" values for
|
|
|
|
author/committer.
|
|
|
|
|
2022-05-01 01:45:22 +00:00
|
|
|
* Diff editor command arguments can now be specified by config file.
|
|
|
|
Example:
|
|
|
|
|
|
|
|
[merge-tools.kdiff3]
|
|
|
|
program = "kdiff3"
|
|
|
|
edit-args = ["--merge", "--cs", "CreateBakFiles=0"]
|
|
|
|
|
2022-05-02 19:58:32 +00:00
|
|
|
* `jj branch` can accept any number of branches to update, rather than just one.
|
|
|
|
|
2022-05-01 15:54:35 +00:00
|
|
|
* Aliases can now call other aliases.
|
|
|
|
|
2022-05-09 17:38:23 +00:00
|
|
|
* `jj log` now accepts a `--reversed` option, which will show older commits
|
|
|
|
first.
|
|
|
|
|
2022-09-13 07:26:23 +00:00
|
|
|
* `jj log` now accepts file paths.
|
|
|
|
|
2022-06-03 22:25:56 +00:00
|
|
|
* `jj obslog` now accepts `-p`/`--patch` option, which will show the diff
|
|
|
|
compared to the previous version of the change.
|
|
|
|
|
2022-06-04 23:18:03 +00:00
|
|
|
* The "(no name/email configured)" placeholder value for name/email will now be
|
|
|
|
replaced if once you modify a commit after having configured your name/email.
|
|
|
|
|
2022-06-09 04:16:34 +00:00
|
|
|
* Color setting can now be overridden by `--color=always|never|auto` option.
|
|
|
|
|
2022-08-27 05:03:51 +00:00
|
|
|
* `jj checkout` now lets you specify a description with `--message/-m`.
|
|
|
|
|
2022-08-31 04:35:56 +00:00
|
|
|
* `jj new` can now be used for creating merge commits. If you pass more than
|
|
|
|
one argument to it, the new commit will have all of them as parents.
|
|
|
|
|
2022-04-07 06:25:01 +00:00
|
|
|
### Fixed bugs
|
|
|
|
|
2022-04-06 19:18:24 +00:00
|
|
|
* When rebasing a conflict where one side modified a file and the other side
|
|
|
|
deleted it, we no longer automatically resolve it in favor of the modified
|
|
|
|
content (this was a regression from commit c0ae4b16e8c4).
|
|
|
|
|
2022-04-07 06:25:01 +00:00
|
|
|
* Errors are now printed to stderr (they used to be printed to stdout).
|
|
|
|
|
2022-04-15 06:03:08 +00:00
|
|
|
* Updating the working copy to a commit where a file's executable bit changed
|
|
|
|
but the contents was the same used to lead to a crash. That has now been
|
2022-05-02 19:58:32 +00:00
|
|
|
fixed.
|
2022-04-15 06:03:08 +00:00
|
|
|
|
2022-04-18 03:51:24 +00:00
|
|
|
* If one side of a merge modified a directory and the other side deleted it, it
|
|
|
|
used to be considered a conflict. The same was true if both sides added a
|
|
|
|
directory with different files in. They are now merged as if the missing
|
|
|
|
directory had been empty.
|
|
|
|
|
2022-04-23 05:58:16 +00:00
|
|
|
* When using `jj move` to move part of a commit into an ancestor, any branches
|
|
|
|
pointing to the source commit used to be left on a hidden intermediate commit.
|
|
|
|
They are now correctly updated.
|
|
|
|
|
2022-04-09 16:20:00 +00:00
|
|
|
* `jj untrack` now requires at least one path (allowing no arguments was a UX
|
|
|
|
bug).
|
|
|
|
|
2022-04-11 17:40:56 +00:00
|
|
|
* `jj rebase` now requires at least one destination (allowing no arguments was a
|
|
|
|
UX bug).
|
|
|
|
|
2022-04-24 19:13:43 +00:00
|
|
|
* `jj restore --to <rev>` now restores from the working copy (it used to restore
|
|
|
|
from the working copy's parent).
|
|
|
|
|
2022-04-09 22:53:32 +00:00
|
|
|
* You now get a proper error message instead of a crash when `$EDITOR` doesn't
|
|
|
|
exist or exits with an error.
|
|
|
|
|
2022-05-01 15:54:35 +00:00
|
|
|
* Global arguments, such as `--at-op=<operation>`, can now be passed before
|
|
|
|
an alias.
|
|
|
|
|
2022-04-20 05:15:38 +00:00
|
|
|
* Fixed relative path to the current directory in output to be `.` instead of
|
|
|
|
empty string.
|
|
|
|
|
2022-04-22 04:49:57 +00:00
|
|
|
* When adding a new workspace, the parent of the current workspace's current
|
|
|
|
checkout will be checked out. That was always the intent, but the root commit
|
|
|
|
was accidentally checked out instead.
|
|
|
|
|
2022-05-21 17:23:46 +00:00
|
|
|
* When checking out a commit, the previous commit is no longer abandoned if it
|
|
|
|
has a non-empty description.
|
|
|
|
|
2022-07-15 18:09:11 +00:00
|
|
|
* All commands now consistently snapshot the working copy (it was missing from
|
2023-01-12 10:01:35 +00:00
|
|
|
e.g. `jj undo` and `jj merge` before).
|
2022-07-15 18:09:11 +00:00
|
|
|
|
2022-04-03 05:56:59 +00:00
|
|
|
## [0.4.0] - 2022-04-02
|
|
|
|
|
2022-03-19 17:17:30 +00:00
|
|
|
### 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.
|
|
|
|
|
2022-03-19 17:37:13 +00:00
|
|
|
### 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.
|
|
|
|
|
2022-03-19 17:00:13 +00:00
|
|
|
* The [standard `$NO_COLOR` environment variable](https://no-color.org/) is now
|
|
|
|
respected.
|
|
|
|
|
2022-03-26 21:02:04 +00:00
|
|
|
* `jj new` now lets you specify a description with `--message/-m`.
|
|
|
|
|
2022-03-26 21:53:51 +00:00
|
|
|
* 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.
|
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
* 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
|
2022-03-17 03:58:04 +00:00
|
|
|
operation rebased A as A', then B would be automatically rebased on top of
|
|
|
|
A'). See #111 for more examples.
|
2022-12-03 17:44:21 +00:00
|
|
|
[#111](https://github.com/martinvonz/jj/issues/111)
|
2022-03-17 03:58:04 +00:00
|
|
|
|
2022-03-28 09:12:08 +00:00
|
|
|
* `jj log` now accepts `-p`/`--patch` option.
|
|
|
|
|
2022-03-29 06:03:37 +00:00
|
|
|
### Fixed bugs
|
|
|
|
|
2022-03-28 13:46:21 +00:00
|
|
|
* Fixed crash on `jj init --git-repo=.` (it almost always crashed).
|
|
|
|
|
2022-03-29 06:03:37 +00:00
|
|
|
* When sharing the working copy with a Git repo, the automatic importing and
|
|
|
|
exporting (sometimes?) didn't happen on Windows.
|
|
|
|
|
2022-03-17 06:01:42 +00:00
|
|
|
## [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.
|
|
|
|
|
2022-03-14 04:51:21 +00:00
|
|
|
## [0.3.1] - 2022-03-13
|
|
|
|
|
2022-03-13 15:14:01 +00:00
|
|
|
### Fixed bugs
|
|
|
|
|
2022-12-03 17:44:21 +00:00
|
|
|
- Fixed crash when `core.excludesFile` pointed to nonexistent file, and made
|
|
|
|
leading `~/` in that config expand to `$HOME/`
|
|
|
|
[#131](https://github.com/martinvonz/jj/issues/131)
|
2022-03-13 15:14:01 +00:00
|
|
|
|
2022-03-12 18:48:51 +00:00
|
|
|
## [0.3.0] - 2022-03-12
|
|
|
|
|
|
|
|
Last release before this changelog started.
|