Skip to content
← Changelog

Riffle 2.2: room for more than one comparison

Version v2.2.0
Date
Type release
Author Andy Miller

Sometimes you need two comparisons open where you can see them: a working-tree review on one display, a merge on another, or a pair of snippets beside the files they came from. Riffle 2.2.0 adds independent windows, along with a round of improvements to pasting, whitespace, and the little bits of the interface you use all day.

Give a comparison its own window

⇧⌘N opens a new window. Move Tab to New Window, in the File menu and the tab's right-click menu, takes an existing comparison with it. Your unsaved edits, undo history, search state, and scroll position all come along. If separate windows are how you prefer to work, General settings now lets you choose Tabs or Windows for new comparisons.

Opening something that's already in another window takes you back to that comparison. A command-line merge waiting for you to finish keeps waiting when you move its tab, and reports the result when you actually finish. Closing a window checks every tab in it for unsaved work; quitting checks every window.

Copy, paste, compare

You can now press ⌘V on the welcome screen to start a comparison with your clipboard text on the left. Paste the other version on the right and you're ready to read. ⌘N opens an empty comparison, and the welcome panel puts New Comparison and Paste to Compare together alongside the file and merge options.

There was also a frustrating bug in this workflow: pasting into an empty or padded pane could lose real blank lines, making identical text look different. That's fixed. Blank lines stay where you put them, and an empty pane in Blocks view reliably accepts a click so you can paste into it.

Whitespace settings reach inside the lines

Riffle already knew how to ignore whitespace when deciding whether a line had changed. The highlights inside a changed line were still comparing everything exactly, though, so a real edit could bring a lot of ignored spaces along for the ride.

Ignore Trailing and Ignore All now apply to those inline highlights and insertion markers too, across Blocks, Fluid, Unified, and the input panes of a merge. Change a value and reindent the line, and Ignore All keeps your attention on the value. Highlights also stay in the right place when Unicode text appears before the edit.

A quieter diff, and clearer navigation

Unchanged lines are dimmed by default. They remain readable at half opacity while changed text keeps its full contrast. It makes a small edit easier to find in a long file without folding away the context. You can turn it off in General settings, and an existing preference is respected.

Stepping past the last change now briefly shows a large loop icon in the center of the diff area, so wrapping back to the first is easy to notice. Going backward past the first does the same. In a review, stepping into the next file still works as before.

The footer also behaves better when a wide file list leaves a narrow comparison beside it. The file and change counts shorten, then reduce to numbers, then disappear if necessary. The controls stay on one line instead of a wrapped label taking over the bottom of the window.

2.2.0 is a free update for existing Riffle owners. Use Riffle → Check for Updates…, download it from the Riffle page, or install with Homebrew: brew install --cask skulkworks/tap/riffle. Riffle is still $29.99 once, with no subscription, a 14-day full-feature trial, and unlimited two-way file comparison in the free tier. The full changelog includes the remaining fixes.