Neovim plugin that adds support for the Jujutsu source control management system. The design is heavily inspired by vim-fugitive.

jiejie provides a large amount of key mappings in the status log window to expose as much of jujutsu's functionality as possible. For remembering the mappings more easily, these rules might prove helpful:
@) is at the center of all interactions. Rebasing a
commit, squashing changes, all references the current change.@) is rebased upon the change under
the cursor.--allow-backwards) or
modifying an immutable change (--ignore-immutable), can be achieved by
adding a leading ! to the mapping.cbM for moving an arbitrary bookmark
to the change under the cursor.cb mappings start with c (change) and b (bookmark alias).<CR>, o, gO, O):Jedit [revision]:[file], or by selecting
the file in the status log window via <CR>, o, gO, O)K)=)d?, :Jdiffsplit [revision], dD,
dd, dV, dv, dS, ds, dH, dh, dq)jj CLI (:J or :Jj)g?, c?, d?, r?, s?)JcLog and
JlLog:J, :JJ, :Jj, :JJ log)s?, sA, sa, sB,sb, sd, sf,
sr, sq, ss, 1ss, ..ss, sT, st)(, ), {, }, [m, ]m,
[[, ]], <Tab>)<C-a>, <C-x>)q, gq)R): or :! command with the file under the cursor (., !!)! prefix to mappings when modifying immutable changes<CR>)gu, gP, gp, grA, gra, grB, grb,
grT, grt)ce) or quick edit the first
line (cd)yy, yc, yC)c?, A, a, cA, ca, cI, ci, i, I, cn)cm, cM, crB, crr, crR)cc)cs,
cS)cpP, cpp, cpM, cpm,
cpT, cpt)cR)X)r?, <<, >>, rbD, rbd,
rbH, rbh, rbM, rbm, rbO, rbo, rbt, rD, rd, rO, ro, rR,
rr, rtD, rtd, rtO, rto, rtt rtT)u, <C-r>)cba, cbb, cbc, cbd, cbF, cbf, cbM, cbm,
cbR, cbr, cbT, cbt, cbu, cbX, cbx)ctc, ctm, ctt, ctX, ctx)x, !x)so, sO)se, sE):J oplog)so, sO)<CR>)q)R)K)<C-a>, <C-x>):J evolog)se, sE)<CR>)q)R)K)<C-a>, <C-x>)With Lazy, add this configuration to nvim:
{
-- https://github.com/jceb/jiejie.nvim
"jceb/jiejie.nvim",
}
With vim.pack add this configuration to nvim:
vim.pack.add({ "https://github.com/jceb/jiejie.nvim" })
Available configuration options: see https://github.com/jceb/jiejie.nvim/blob/feat/exclude-revsets/lua/jiejie/config.lua
With Lazy:
{
-- https://github.com/jceb/jiejie.nvim.git
"jceb/jiejie.nvim",
-- Custom configuration settings
opts = {
-- Excluded revset expression, see https://docs.jj-vcs.dev/latest/revsets/ for the full language
excluded_revset = 'bookmarks(glob:"renovate/*") | tracked_remote_bookmarks(glob:"renovate/*") | untracked_remote_bookmarks(glob:"renovate/*")',
default_view = 1,
dynamic_views = {
-- Dynamic view that dispalys all merges, see https://docs.jj-vcs.dev/latest/revsets/ for the full language
{ revset = "merges()" }
},
log_revisions = 10,
}
}
With vim.pack:
vim.g.jiejie_config = {
-- Excluded revset expression, see https://docs.jj-vcs.dev/latest/revsets/ for the full language
excluded_revset = 'bookmarks(glob:"renovate/*") | tracked_remote_bookmarks(glob:"renovate/*") | untracked_remote_bookmarks(glob:"renovate/*")',
default_view = 1,
dynamic_views = {
-- Dynamic view that dispalys all merges, see https://docs.jj-vcs.dev/latest/revsets/ for the full language
{ revset = "merges()" }
},
log_revisions = 10,
}
See ROADMAP.md.
grt or run
git push --tags manually to push them upstream. There's no command
jj git push --tags, yet!There isn't too much information about Jujutus on the web, yet. Here are a number of references that I find helpful: