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-04-24 19:31:54 +00:00
|
|
|
### Breaking changes
|
|
|
|
|
|
|
|
* `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-05-14 15:55:46 +00:00
|
|
|
* (#250) `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).
|
|
|
|
Use `jj log -r 'all()'` for the old behavior. Read more about revsets
|
|
|
|
[here](https://github.com/martinvonz/jj/blob/main/docs/revsets.md).
|
|
|
|
|
2022-04-06 18:00:27 +00:00
|
|
|
### New features
|
|
|
|
|
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-04-25 20:34:13 +00:00
|
|
|
* (#243) The new `jj git remotes list` command lists the configured remotes and
|
|
|
|
their URLs.
|
|
|
|
|
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-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
|
|
|
|
to create a branch yourself.
|
|
|
|
|
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-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-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-03-17 03:58:04 +00:00
|
|
|
* (#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.
|
|
|
|
|
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
|
|
|
|
|
|
|
|
- (#131) Fixed crash when `core.excludesFile` pointed to non-existent file, and
|
|
|
|
made leading `~/` in that config expand to `$HOME/`
|
|
|
|
|
2022-03-12 18:48:51 +00:00
|
|
|
## [0.3.0] - 2022-03-12
|
|
|
|
|
|
|
|
Last release before this changelog started.
|