GNU ELPA - vc-jj

vc-jj Atom Feed

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.lz2025-Jun-1522.3 KiB
vc-jj-0.2.tar.lz2025-Apr-1819.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 like vc-switch-branch, which are implemented on top of vc-retrieve-tag.
  • Added vc-jj-create-tag, which implements the vc.el create-tag method. This makes it possible to use vc commands like vc-create-branch, which call vc-create-tag.
  • Added several commands to manipulate bookmarks in vc-jj-log-view-mode: vc-jj-bookmark-set, vc-jj-bookmark-delete, and vc-jj-bookmark-rename. These have bindings under the "b" prefix key in vc-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, calling vc-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 to erase-buffer, which accepts no arguments. Commands that use vc-find-revision, like vc-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 so log-edit-done works properly when editing .jjdescription files. This makes Emacs work properly as external editor when calling jj 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 for vc-print-log: each commit is displayed in one line, and RET expands the current entry to show commit details. Remove the unused customization options vc-jj-colorize-log and vc-jj-log-template.
  • Files of type .jjdescription are now edited using log-edit-mode instead of fundamental mode. (Such files are created by jj when the user runs jj describe or jj 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.