Skip to content

Latest commit

 

History

776 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Majutsu — Shape history without leaving Emacs

Majutsu provides a Magit-style interface for Jujutsu (jj), offering an efficient way to interact with JJ repositories from within Emacs.

Read the full manual for comprehensive documentation.

Quick Start

Installation

;; Doom Emacs (packages.el)
(package! majutsu :recipe (:host github :repo "0WD0/majutsu"))

;; use-package + straight.el
(use-package majutsu
  :straight (:host github :repo "0WD0/majutsu"))

;; use-package + package-vc (Emacs 29+)
(use-package majutsu
  :vc (:url "https://github.com/0WD0/majutsu"))

Usage

  1. Open a JJ repository: M-x majutsu (or majutsu-log)
  2. Navigate: vanilla bindings use n / p for next/previous revision; Evil uses C-j / C-k or gj / gk for section navigation. In log buffers, [ / ] jump to visible parents/children
  3. Act: RET to visit, ? for help
  4. In blob buffers, press e to enter editable mode; save applies via jj diffedit (i in Evil also enters editable mode)
  5. In blob buffers, press b to annotate; C-c m opens the blob in Magit

Optional Forge Integration

If Forge is installed, enable Majutsu integration with:

(require 'majutsu-forge)
(majutsu-forge-mode 1)

This adds Forge issue, pull-request, and discussion sections to Majutsu log buffers and binds N / ' in Majutsu buffers to forge-dispatch. The initial integration is intended for colocated jj/Git repositories, where Forge can still see a Git repository and remotes. Forge sections also depend on a configured, tracked repository and populated Forge database. Pull-request commit lists shown by Forge’s Git-oriented renderer are replaced by a placeholder in Majutsu buffers.

Optional Embark Integration

When Embark is loaded, Majutsu automatically adds actions for workspace and bookmark completion candidates. Workspace actions can visit, open in Dired, or copy the root. Bookmark actions can edit, diff, inspect evolution, move, rename, delete, or forget the selected bookmark.

Essential Keybindings

Key (Vanilla / Evil)Action
n / C-jNext revision/section
p / C-kPrevious revision/section
[Go to parent
]Go to child
RETVisit thing at point
?Show all commands
g / g rRefresh
aAbsorb
bBookmarks
cDescribe
CCommit
dDiff
EEdiff
eEdit change
G / ? GGit
k / xAbandon
oNew
rRebase
V / _Revert
RRestore
sSquash
SSplit
? yDuplicate
Z / *Workspaces
C-/ / uUndo
C-? / C-rRedo

Requirements

Documentation

License

Credits

Majutsu began as a fork of jj-mode.el by Brandon Olivier. It depends on and draws inspiration from Magit and wraps the Jujutsu VCS.

Contributing

Issues and pull requests welcome at https://github.com/0WD0/majutsu

About

Majutsu! Magit for jujutsu

Topics

Resources

Stars

260 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages