Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 23:30
· 83 commits to main since this release

The diff viewer became a git and GitHub controller you can run on its own.

Command line

  • duck-diff opens your changes; targets read like :DuckDiff (staged, a ref, a...b, a..b,
    commit), and graph, files path:line, prs N, issues N and the other views open by name.
  • A second run in the same repo opens its page on the server already running.
  • duck-diff update installs the newest release, checked against its sha256; install.sh does the same from
    curl, with --version, --dir and --uninstall.
  • The page opens as an app window, as from Neovim.
  • Starting it prints a short @gentleduck/diff banner with the repo, the branch and the link.

Git

  • Graph with branch lanes: check out, branch, cherry-pick, revert, interactive rebase, bisect, worktrees and
    submodules.
  • Stage, unstage and discard files, hunks or single lines; a three-pane merge editor for conflicts.
  • Every action shows its command and output, hooks included, in an Output panel; real shells in the same panel.
  • Blame on both sides of the diff; diff tabs; hide patterns; viewed marks that count and fold.

GitHub

  • Pull requests and issues laid out like GitHub's: conversations, reviews, review threads in the diff, merge
    box with every method, checks and logs, linked timeline events.
  • Notifications, releases, actions, discussions, security alerts and insights; GitHub Enterprise and GitLab.

Page

  • Neovim-style keys: Space leader, which-key, modes, a : command line and a palette, all rebindable.
  • Code navigation through language servers, with a hover float like Neovim's.
  • Ten dark themes. Light mode was considered and declined.
  • Open on a file uses the attached Neovim, else nvim in a terminal in the page, else your code editor.
  • Built on TanStack Router and Query; visited views and tabs stay alive, paused.
  • A reload draws the whole page in its first frame: the server sends the diff, its colors, the graph and the
    saved answers with the html, and keeps them until the repo changes.
  • Settings, comments and tabs live in $XDG_DATA_HOME/duck-diff, not in the browser.

What's Changed

  • feat: duck-diff 0.5.0, a git and GitHub controller from the terminal or Neovim by @wildduck2 in #13

Full Changelog: v0.4.1...v0.5.0