jj/docs/install-and-setup.md
Ilya Grigoriev 2911f414bd docs: remove v0.7.0 shell completion instructions
Now that v0.9.0 is released, it seems appropriate.
2023-09-06 15:35:01 -07:00

2.4 KiB

Installation and setup

Installation

See below for how to build from source. There are also pre-built binaries for Windows, Mac, or Linux (musl).

Linux

On most distributions, you'll need to build from source using cargo directly.

Build using cargo

First make sure that you have the libssl-dev, openssl, and pkg-config packages installed by running something like this:

sudo apt-get install libssl-dev openssl pkg-config

Now run:

cargo install --git https://github.com/martinvonz/jj.git --locked --bin jj jj-cli

Nix OS

If you're on Nix OS you can use the flake for this repository. For example, if you want to run jj loaded from the flake, use:

nix run 'github:martinvonz/jj'

You can also add this flake url to your system input flakes. Or you can install the flake to your user profile:

nix profile install 'github:martinvonz/jj'

Homebrew

If you use linuxbrew, you can run:

brew install jj

Mac

Homebrew

If you use Homebrew, you can run:

brew install jj

MacPorts

You can also install jj via MacPorts (as the jujutsu port):

sudo port install jujutsu

(port page)

From Source

You may need to run some or all of these:

xcode-select --install
brew install openssl
brew install pkg-config
export PKG_CONFIG_PATH="$(brew --prefix)/opt/openssl@3/lib/pkgconfig"

Now run:

cargo install --git https://github.com/martinvonz/jj.git --locked --bin jj jj-cli

Windows

Run:

cargo install --git https://github.com/martinvonz/jj.git --locked --bin jj jj-cli --features vendored-openssl

Initial configuration

You may want to configure your name and email so commits are made in your name.

$ jj config set --user user.name "Martin von Zweigbergk"
$ jj config set --user user.email "martinvonz@google.com"

Command-line completion

To set up command-line completion, source the output of jj util completion --bash/--zsh/--fish. Exactly how to source it depends on your shell.

Bash

source <(jj util completion)  # --bash is the default

Zsh

autoload -U compinit
compinit
source <(jj util completion --zsh)

Fish

jj util completion --fish | source

Xonsh

source-bash $(jj util completion)