Skip to content

Fretwire 0.3.0

Choose a tag to compare

@olegklimakov olegklimakov released this 19 Aug 18:50

The third beta, and both of its features are about work that used to happen in a
terminal beside the app. A git worktree is now a section of the sidebar — one
you can add to, open as a tab, and remove from — and any file can be handed to
the diff or merge tool you already have set up, because Fretwire runs your
git difftool rather than reimplementing one. The DMG got a window drawn for it
along the way.

New

  • Worktrees — a WORKTREES section appears in the sidebar as soon as a repository has one. Each row carries the folder, the branch it holds (or detached at <sha>), and a lock or prunable marker; its menu is Open in New Tab · Reveal in Finder · Copy Path · Remove…, and the section header holds Add Worktree… and Prune Missing Worktrees. A worktree opens as a tab of its own, and removing one closes the tab that was showing it. The Add sheet takes an existing branch or creates a new one, and fills the folder name in as <repo>-<branch>.
  • A branch checked out somewhere else says where — a branch another worktree holds shows a folder marker, and its menu reads Checked out in ~/code/app-review with Open Worktree above it, rather than a Checkout that git was always going to refuse. Where a refusal does arrive — "is already used by worktree at …" — it comes with the same button instead of a dead end. So does the refusal to remove a worktree with uncommitted work, and a locked one's confirmation says out loud that the lock is what's being overridden.
  • Your own diff and merge tool — ⌘D on the diff pane, or Open in External Diff Tool in the staging and commit-detail menus, hands the file to git difftool; a conflicted file gets Resolve in External Merge Tool and git mergetool, which stages what it resolves. Both read diff.tool / merge.tool out of your own git config, so a tool already working in your terminal needs no setting up here. Settings ▸ Git names the config line being followed, lists the tools this Mac actually has, and can override the choice for the app alone. One caveat, written there too: the tool has to wait for the editor — code without --wait returns before git's temporary files can be read.
  • An installer window worth opening — the DMG opens on a fretboard, with the icon's own teal curve running out of the app and up into /Applications, and the mounted volume carries the app's icon rather than a generic disk.

Fixed

  • A folder whose name ends in a spacegit rev-parse --show-toplevel answers with a path plus git's own newline, and trimming whitespace took the last character of such a name with it. Only git's terminator comes off now.

Requirements

  • macOS 14 or later.
  • A git — whichever comes first on your login shell's PATH, else Apple's. With none installed at all, the Welcome screen says so once, with the command that fixes it.

Not here yet

  • An interactive rebase editor. One commit at a time can be reworded, squashed or dropped; reordering a range still belongs in the terminal.
  • A command palette.

During the beta

Free, for any use. Licensing starts at 1.0: free for personal projects, paid per seat for commercial use — see the EULA.

The app updates itself — each update is checked against a signature before it is applied. Settings ▸ Updates decides how much of that happens on its own. Bug reports and requests go to the issue tracker.