Repository navigation
v1.3.0
Changelog
1.3.0
Fixed
- Stacks worked on in parallel were mixed together in the graph, because revisions were listed newest first. Each stack is now kept together, like
jj log: the stack holding @ first, then the other stacks newest first, then the history they share. This also applies to the rebase preview.
1.2.0
Added
- Folder view for changed files: More actions (…) → Show files as → Folders shows a revision's changed files under their folders, like the Explorer, in the graph and the evolution log. Folders start expanded and show their total line counts; click a folder to collapse it, or use Collapse all folders beside the author filter. Single-child folder chains are merged into one row (
webview/src/graph). Dragging or right-clicking a folder acts on every file in it. Setting:visualJujutsu.fileView(listby default).
1.1.0
Fixed
- "No jj repository found in this workspace" when VS Code couldn't find jj on its PATH (common when VS Code is started from the Dock or a desktop launcher). The extension now also looks in the usual install locations (Homebrew,
~/.cargo/bin,~/.local/bin, Nix, WinGet, Scoop and others). When jj still can't run, the graph shows the actual error and a link tovisualJujutsu.jjPath.
Changed
- Graph nodes on the working copy's line of work (@, its ancestors and its descendants) are filled; other revisions are hollow.
- Change IDs show only the shortest unique prefix. Hover to see the full ID; Copy change ID still copies the full ID.
1.0.1
Fixed
- Choosing a density right after updating, before the window reloaded, failed with "visualJujutsu.density is not a registered configuration". It now explains and offers Reload Window.
Changed
- Light themes: the selected row uses the theme's softer selection colour with a thin accent bar, instead of the strong blue, so bookmark chips and IDs keep their colours. Dark and high-contrast themes are unchanged.
1.0.0
Fixed
- Actions on a divergent revision failed on jj 0.36 and later ("Change ID … is divergent"), and divergent rows shared an ID in the graph. Divergent revisions are now addressed by commit ID.
Added
- Compact density: More actions (…) → Density switches between comfortable (28px rows) and compact (22px rows) in the graph, file lists, operation log and pull requests view. Setting:
visualJujutsu.density. - Duplicate a revision (
jj duplicate). - Pull request actions: change a PR's base, mark a draft ready for review, or close it (optionally deleting the remote branch). From the revision menu's Pull request submenu, or right-click / “…” on a PR in the pull requests view.
- Evolution log: Show evolution log lists every version of a change (
jj evolog), with the operation that made each version on newer jj (0.36 and later; older jj shows the versions only). Click a version to see the files that changed since the previous one and open diffs; Restore this version copies its files back. - Divergent changes: a warning above the graph when a change has more than one visible version, and Keep one version… abandons the others.
- Native GitHub stacks: when the gh stack extension is installed, Create PRs for stack and Sync stack link the stack's PRs with
gh stack link. Setting:visualJujutsu.linkGitHubStacks(on by default).
0.2.1
Fixed
- Pushing a bookmark the remote doesn't have yet failed on jj 0.42 and later ("Refusing to create new remote bookmark") unless
remotes.<name>.auto-track-bookmarkswas set. New bookmarks are now tracked before pushing. This affected pushing a bookmark, Push stack, Sync stack and creating pull requests. - Bookmark chips were unreadable on a selected row in themes whose selection colour matches the chip colour.
0.2.0
Added
- Operation log view (history button): every jj operation with time and user; restore the repo to any of them (
jj op restore). - Split a revision: pick files from the revision menu, or split selected files from the file menu (
jj split). - Absorb a revision's changes into the mutable revisions that last touched those lines (
jj absorb). - Discard changes to files in a revision, back to the parent's version (
jj restore). - Move up / Move down to reorder a revision within its stack (⌥↑ / ⌥↓).
- Rebase all my stacks on main from the toolbar's More menu.
- Multi-select: rebase or squash several revisions at once.
- Bookmarks: rename, delete, forget and track / untrack remote bookmarks.
- Push stack: push every bookmark between trunk and a revision.
- Push preview: pushing from the toolbar or a stack first shows jj's dry-run report and asks to confirm.
- Resolve conflicts with your merge tool (
jj resolvein a terminal); open conflicted files in the working copy. - Command palette: Absorb, Split, Rebase All My Stacks on Main, Track / Untrack Remote Bookmarks.
- Pull requests view (PR button in the toolbar): your PRs grouped into stacks with checks and review state, a warning when a PR's base is out of date, and other open PRs.
- Stacked PRs: Create PRs for stack opens a PR for every revision between trunk and the one you pick, each based on the one below. Sync stack pushes every bookmark in a stack and fixes PR bases after a rebase, showing the plan first.
- Post-merge cleanup: when a PR with a local bookmark is merged, Clean up fetches, rebases the work on top of it onto trunk, abandons the merged revisions and deletes the bookmark.
- Rebase preview in the rebase dialog: the graph before and after, and which revisions would become conflicted. Nothing changes until you press Rebase.
- Source Control view: the working copy's changed files (conflicts listed first), gutter quick diffs against
@-, and a message box that describes@. - Multi-root: every jj repo in the workspace (including nested repos) gets its own graph and Source Control entry; switch with the repository picker or Switch Repository.
- PR badges show the review state in their tooltip.
Fixed
- Repos opened through a symlinked path (for example
/varon macOS) now match the files VS Code opens.
0.1.1
Fixed
- The graph failed to load on jj older than 0.46 ("Failed to parse template: Syntax error"). Visual Jujutsu now works with jj 0.27 and later.
- Rebase uses
-dinstead of-oon jj before 0.36. - Pushing a new bookmark works on jj before 0.42 (passes
--allow-new). - Changed-file line counts work on jj before 0.36.
- A clear message when jj is older than 0.27, and when Redo is used on jj before 0.33.
0.1.0 (pre-release)
First release.
Added
- Revision graph in the sidebar: lanes, working copy, immutable/conflicted/empty revisions, bookmarks (local, remote, conflicted), tags, PR and CI badges.
- Revset presets (Default, Mine, Stack of @, All, Bookmarks), saved revsets, and a revset filter box.
- Auto-refresh when jj records an operation, on file save, and on window focus.
- Expand a revision to see changed files with line counts; click a file to open a diff.
- Describe inline, new revision (on top, insert after, insert before, merge), edit, abandon, squash into parent or any revision.
- Move files between revisions by drag and drop or the file context menu.
- Rebase by drag and drop (⌥ only this revision, ⇧ whole branch, drop on a row edge to insert before/after), from the context menu, or with the rebase dialog. One-click rebase on main.
- Bookmarks: create, move by dragging the chip (asks before moving backwards), push.
- Fetch, push bookmarks, push a revision as a new bookmark; "Fetch and retry" when a push is rejected.
- GitHub pull requests via
gh: create (bases stacked PRs on the PR below), move a PR to another revision, open on GitHub. - Undo and redo, command log output channel, status bar item.
- Planned features are already in the UI and show "not supported yet". See FEATURES.md.