vc-jj 
- Description
- VC backend for the Jujutsu version control system
- Latest
- vc-jj-0.4.tar (.sig), 2025-Sep-03, 110 KiB
- Maintainer
- Rudolf Schlatte <rudi@constantly.at>
- Website
- https://codeberg.org/emacs-jj-vc/vc-jj.el
- Browse ELPA's repository
- CGit or Gitweb
- Badge
To install this package from Emacs, use package-install
or list-packages
.
Full description
1. jj (Jujutsu) integration with Emacs vc.el and project.el
Support for Emacs built-in vc.el
and project.el
for the Jujutsu
version control system.
1.1. Installation
This package is distributed via GNU Elpa
(https://elpa.gnu.org/packages/vc-jj.html) and can be installed via
M-x package-install
.
1.2. Jujutsu configuration
Emacs has built-in support for git-style diff and conflict markers, so
you might want to set the following options in your Jujutsu
configuration, for example via jj config edit --user
or jj config edit
--repo
:
[ui] ui.diff-formatter = ":git" conflict-marker-style = "git"
1.3. Contributing
We welcome bug reports and pull requests! Since vc-jj.el
is
distributed via GNU elpa, non-trivial code contributions need to have
the standard FSF copyright assignment in place; feel free to contact
us for details. Note that "trivial" (below 15 lines or obvious) code
suggestions in bug reports are fine.
2. Other Emacs packages for Jujutsu
The scope of the vc-jj.el
project is to add jj support to the Emacs
built-in vc
and project
libraries. In case you look for a package
with more specialized jujutsu support, here are some that might fit
the bill:
- bolivier/jj-mode.el
- “Jujutsu version control mode for Emacs inspired by Magit”
- bennyandresen/jujutsu.el
- “An Emacs interface for jujutsu, inspired by magit and humbly not attempting to match it in scope.”
- ~puercopop/jujutsushi
- “A emacs interface to jujutsu”
Old versions
vc-jj-0.3.tar.lz | 2025-Jun-15 | 22.3 KiB |
vc-jj-0.2.tar.lz | 2025-Apr-18 | 19.9 KiB |
News
1. Recent changes
1.1. 0.4 - 2025-09-03
1.1.1. Added
- Added
vc-jj-retrieve-tag
, which makes it possible to use vc commands likevc-switch-branch
, which are implemented on top ofvc-retrieve-tag
. - Added
vc-jj-create-tag
, which implements the vc.el create-tag method. This makes it possible to use vc commands likevc-create-branch
, which callvc-create-tag
. - Added several commands to manipulate bookmarks in
vc-jj-log-view-mode
:vc-jj-bookmark-set
,vc-jj-bookmark-delete
, andvc-jj-bookmark-rename
. These have bindings under the "b" prefix key invc-jj-log-view-mode
:vc
buffers. - Added list of other jj support packages for Emacs to the documentation – not everyone is looking for vc integration :)
1.1.2. Fixed
- vc-jj now does not prevent non-vc Emacs operations (dired, editing
files) in a corrupted jj repository. Blocking this was never
intended, but was a consequence of letting errors escape from
vc-jj-dir-status-files
. - Properly handle cases where directory file paths are passed to
vc-jj's
vc-jj--filename-to-fileset
, which vc-jj uses to transform file names into forms adhering to jj's fileset language. Now, callingvc-next-action
on a directory listing with changed files in a vc-dir buffer will commit those changed files. Previously an empty commit would be made. - Fix error when calling
vc-find-revision
due to erroneous argument toerase-buffer
, which accepts no arguments. Commands that usevc-find-revision
, likevc-revision-other-window
, now do not error. - Identify the "removed" vc file state. Previously, removed files would be incorrectly labeled as "ignored."
- vc-jj now sets up
log-edit-callback
solog-edit-done
works properly when editing.jjdescription
files. This makes Emacs work properly as external editor when callingjj commit
or similar from the terminal. - vc-jj installation now proceeds without warnings from the byte compiler.
1.2. 0.3 - 2025-06-15
1.2.1. Changed
- The behavior of
vc-jj-print-log
is now closer to the behavior documented forvc-print-log
: each commit is displayed in one line, and RET expands the current entry to show commit details. Remove the unused customization optionsvc-jj-colorize-log
andvc-jj-log-template
. - Files of type
.jjdescription
are now edited usinglog-edit-mode
instead of fundamental mode. (Such files are created by jj when the user runsjj describe
orjj commit
from the command line.) vc-dir
headers now display more information:- All information about the current changeset (change id, commit id, first line of description) is contained in one line.
- Information about the current changeset's parent(s) is shown in the same format.
1.2.2. Fixed
- Fix breakage when the project directory contains a file too large to
be automatically added. (jj prints a warning in that case, even
when run with
--quiet
, so we need to discard output to stderr.)
1.3. 0.2 - 2025-04-18
1.3.1. Fixed
- Properly escape filenames containing jj fileset operator characters.
1.4. 0.1 - 2025-03-16
- First released version.