Skip to content

Repository files navigation

Judo

Judo is a native macOS Jujutsu https://jj-vcs.github.io/jj/latest/ GUI client.

Features

Supported Jujutsu Operations

Change Management:

  • Create new changes (jj new)
  • Abandon changes (jj abandon)
  • Squash changes (jj squash) - single commit squashes only
  • Edit change descriptions (jj describe)
  • Simple rebase changes via drag & drop (jj rebase) - single commit moves only

Repository Navigation:

  • View repository log (jj log)
  • Filter by revset expressions
  • Search by description text
  • View diffs for changes (jj diff)

Bookmark Management:

  • View bookmarks
  • Move bookmarks via drag & drop (jj bookmark move)

Undo Operations:

  • Undo last operation (jj undo)

UI Features

  • Multiple view modes (Timeline, Mixed, Change)
  • Diff viewing with syntax highlighting
  • Change metadata display (author, date, commit ID)
  • Graph visualization showing change relationships
  • Live repository status updates

Missing Jujutsu Features

Easy to Implement (single menu command)

  • jj commit - Create a new change from working copy (easy)
  • jj duplicate - Duplicate changes (easy)
  • jj edit - Set a revision as working copy (easy)
  • jj next / jj prev - Navigate to child/parent revision (easy)
  • jj redo - Redo previously undone operation (easy)
  • jj restore - Restore paths from another revision (easy)
  • jj show - Show commit description and changes (easy)
  • jj status - Show working copy status (easy)
  • jj workspace root - Show workspace root directory (easy)

Moderate Complexity

  • jj absorb - Move changes into mutable ancestors
  • jj diffedit - Edit changes with diff editor
  • jj evolog - Show change evolution history
  • jj fix - Apply formatting fixes
  • jj interdiff - Compare changes between commits
  • jj parallelize - Make revisions siblings
  • jj resolve - Resolve conflicts with merge tool
  • jj revert - Apply reverse of revisions
  • jj split - Split a revision in two
  • jj unsquash - Move changes from parent

Complex Features (require significant UI)

  • jj git commands - Git remote operations (fetch, push, pull, clone)
  • jj operation commands - Operation log management
  • jj workspace commands - Multiple workspace support
  • jj config - Configuration management
  • jj sparse - Sparse checkout management
  • jj tag - Tag management
  • jj sign/jj unsign - Cryptographic signatures
  • jj file operations - File-level operations

Issues / Limitations

  • IMPORTANT Use Judo at your own risk.
  • Judo is (currently) using a Document based architecture in SwiftUI. Judo's documents are folders and SwiftUI isn't really set up to work like that. This means we have vestigal "Save" and "Revert" menu items that don't do anything except throw errors.

Requirements

  • jj installed. By default Judo looks at the Apple Silicon homebrew default install location of /opt/homebrew/bin/jj, but this is configurable in Settings.

License

MIT License

About

MacOS Jujutsu GUI

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages