Fretwire 0.6.0
The sixth beta is about the history row as a place to act from. Two things that
lived somewhere else moved onto the commit itself: the force push that every
rewrite in its menu warns will be needed, and the worktree already checked out
at that commit — a checkout that costs nothing, because the directory is
standing there on it. And a linked worktree stops posing as a project of its
own: its tab nests under the project it belongs to, smaller, with a branch
glyph, and it is the repository that goes into recents.
New
- Force push from the history — a commit's menu offers four ways to rewrite
what is under it, and each one says the same thing afterwards: this will need
a force push. The push itself was a trip away, to the toolbar or the remote
hub. Force Push<branch>… now sits on the tip of any branch whose
same-named upstream is still there, one entry per branch — several
upstream-tracking branches on one tip is rare enough that a submenu would be
noise. It pushes--force-with-leasewith a fully qualified refspec, so it
works from any checkout rather than only when that branch is the one you are
standing on: rewriting a branch you are not on and pushing it is one menu now,
not a checkout in between. - The same warning everywhere — force push confirms through one sheet, and
the toolbar's private confirmation dialog is gone. The button, the remote hub
and the commit row ask the question in the same words, name the same branch,
and warn in the same breath that the push aborts if the remote has commits you
haven't fetched. - Open the worktree sitting on a commit — when another linked worktree is
checked out at the commit under the cursor, Open Worktree<name>jumps
to its tab. It is the only checkout in the menu that touches no git at all —
the working tree already exists, on that commit — so it stays available while
an operation is running, alongside the copy items. Offered for a worktree
holding a branch and for one on a detached HEAD, and only while its directory
is still on disk. - Worktrees live inside their project — a linked worktree used to open as
though it were an unrelated repository: its own entry in recents, its own icon
in the rail, no sign of what it belonged to. Now the recents entry records the
repository, a worktree tab inserts next to its project's tab — a project
opened later adopts the worktree tabs already there — and the rail draws it
smaller and indented, with a branch glyph in the corner and a tooltip that
says which project it is a worktree of. The relationship is read at open time
from--git-common-dirand never stored, so a worktree removed behind the
app's back leaves nothing stale behind, and a submodule or a bare repository
is not mistaken for one.
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
- A command palette.
- Dragging a commit onto a branch. The rebase editor covers reordering a range;
history by drag-and-drop is a separate decision, and it hasn't been made.
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.