jj-squash

moves changes from a revision into its parent or a specified destination in Jujutsu

TLDR

Squash working copy into its parent
$ jj squash
Squash a specific revision into its parent
$ jj squash -r [revision]
Interactively select which parts to squash
$ jj squash -i
Squash into a specific destination revision
$ jj squash --into [destination]
Squash from one revision into another
$ jj squash --from [source] --into [destination]
Squash with a custom description message
$ jj squash -m "[message]"
Squash only specific file paths
$ jj squash [path/to/file]

SYNOPSIS

jj squash [options] [FILESETS]

DESCRIPTION

jj squash moves changes from a revision into its parent or a specified destination in Jujutsu. Without options, it moves all changes from the working-copy commit (@) into its parent. The source commit becomes empty and is abandoned by default. Use --from and --into to move changes between arbitrary revisions. You can restrict the operation to specific file paths by passing filesets as arguments.

PARAMETERS

-r, --revision REVSET

Revision to squash into its parent (default: @).
-f, --from REVSETS
Revision(s) to squash from (default: @).
-t, --into REVSET
Revision to squash into (default: parent of source).
-i, --interactive
Interactively choose which parts to squash.
--tool NAME
Specify diff editor to use (implies --interactive).
-m, --message MESSAGE
Description for the squashed revision (don't open editor).
-u, --use-destination-message
Use the description of the destination revision and discard the source description(s).
-k, --keep-emptied
Do not abandon the source revision even if it becomes empty.

INSTALL

sudo pacman -S jujutsu
sudo apk add jujutsu
sudo zypper install jujutsu
brew install jujutsu
nix profile install nixpkgs#jujutsu

SEE ALSO

jj(1), jj-abandon(1), jj-split(1), jj-diffedit(1)