Skip to content

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 06:46
· 7 commits to main since this release

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 (list by 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 to visualJujutsu.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-bookmarks was 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 resolve in 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 /var on 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 -d instead of -o on 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.