Majjik.el is a jujutsu interface inside Emacs, heavily inspired by Magit's rich buffer-oriented interface. Eventually, I hope Majjik will be a complete jj interface, but for now it's just my first public elisp project. Please be patient.
- Fork Magit
- Realise you've dramatically underestimated Magit's scope
- start from scratch after a year hiatus
- un-fork
- Add jj's main commands
-
jj git init -
jj git fetch/push -
jj git remote -
jj undo/redo -
jj new/edit -
jj desc -
jj abandon -
jj git init -
jj bookmark *-
create -
move -
set -
rename -
delete -
forget -
track -
untrack
-
-
jj file *-
track -
untrack -
chmod -
annotate
-
-
jj squash -
jj split -
jj rebase -
jj restore -
jj op * -
jj evolog -
jj diffedit -
jj interdiff -
jj parallelize -
jj next/prev -
jj resolve -
jj revert -
jj simplify-parents
-
- Add uncommon commands
-
jj absorb -
jj fix -
jj metaedit -
jj sign/unsign -
jj sparse -
jj tag -
jj util * -
jj workspace
-
- Add a basic dashboard buffer
- polish dashboard buffer
- Add proper collapsible sections for summary, log
- Allow expanding elided log segments
- RET to inspect from dashboard
- revisions - show revision
- files
- tracked - show file diff
- untracked - view file
- conflicted - open preferred merge tool? (e.g. ediff, smerge)
- bookmarks?
- Make commands transient where it makes sense
- Dogfood it
install jj
install majjik
run M-x majjik-dash (C-x j by default)
if you use elpaca, you can install with:
(use-package majjik
:ensure (:repo "https://github.com/Zoybean/majjik"))