Skip to content

FinderGit 0.28.0

Choose a tag to compare

@gfazioli gfazioli released this 31 Aug 12:21
· 13 commits to main since this release

New

Stash — set the working tree aside without committing it.

The Unstage tab now carries a Stash… button beside Stage All and Discard All, because it is the third answer to the same question — what do I do with these changes right now — and the only one that is neither destructive nor a commitment. Give the stash a message, or leave it blank and let git name it after your last commit. Untracked files go along, so the tree is genuinely clean afterwards rather than half-stashed.

Everything you have set aside is listed under the commit box as Stashed changes (N), collapsed until you want it. Each entry shows the branch it came from, how long it has been waiting, and a quiet Automatic badge when the text is git's rather than yours — so a subject you never typed doesn't read as a description you chose. Three actions per row:

  • Pop — bring the work back and remove the stash
  • Apply — bring it back and keep the stash
  • Drop — delete it without applying, behind a confirmation that says plainly the changes are not applied first

If a pop hits a conflict, the conflict lands in your files and the stash stays put. Nothing is lost, the entry is still on the list, and you can try again once you have resolved it. On a clean tree, stashing tells you "Nothing to stash" rather than claiming it saved something you would later go looking for.

Dates and ages are shown in your language, and the whole feature is translated into Italian, French, German and Spanish along with the rest of the app.

File → Remove Root Folder. Removing a root folder used to be something only the pointer could do, through the ⊖ button in the sidebar. It now has a menu item, acting on the folder selected in the window you are actually using — so it does the right thing with more than one window open.

Fixed

A failed action no longer goes quiet. When a git action failed, the red warning in the action bar could vanish a second or two later — on exactly the actions that had changed something on disk, because re-reading the repository overwrote the message with "nothing wrong here". The failure now outlives every refresh, which is what "Last action failed" always claimed to mean. Most visible with a stash that pops into a conflict, but it applies to pull and to updating a fork as well.

Under the hood

  • Update signatures are produced with the same auto-update toolchain the app ships, rather than whichever copy happened to be on the release machine (#161). No effect on installed copies; it removes a way for a release to be signed with a key the app would not accept.
  • An action's failure and a status read's failure are now separate pieces of state. They shared one field, so any background refresh could clear the wrong one.
  • A stash is identified by its own commit hash rather than its position in the list. Positions renumber the moment anything is removed, so a confirmation left open could have acted on a different stash than the one on screen.
  • 407 tests.

Verify this download

Compare the checksum of the file you downloaded:

shasum -a 256 FinderGit-0.28.0.dmg

It must print exactly:

451167246c0b0e1c319f0508f619bd7c9e291dfeecc3bcfbe91f785868fea7e4

The DMG is also signed with an Apple Developer ID and notarized by Apple, which you can confirm without installing it:

spctl -a -vv -t open --context context:primary-signature FinderGit-0.28.0.dmg

That reports source=Notarized Developer ID for a genuine build.