Repository navigation
Changelog
1.3.2
Fixed
- Copy and paste (⌘C/⌘V, ⌘X, ⌘A) didn't work in the description box. Its key handler kept those keys from VS Code, which handles clipboard shortcuts in webviews.
- Resolve with merge tool could do nothing, depending on the merge tool jj was set to use. It now opens VS Code's merge editor (through jj's built-in
vscodemerge tool), using the editor's owncodelauncher, so it works even whencodeisn't on your PATH. Close the merge editor to finish; the graph refreshes when jj records the resolution.
1.3.1
Fixed
- Loading pull requests could fail with a gateway timeout on busy repositories, because 100 PRs and all their checks were requested at once. They are now fetched in two pages of 25 (the 50 newest), asking only for each PR's overall check result; if the second page fails, the first 25 are still shown.
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.