Riffle 2.3: fold the merge, and big files feel small
A merge of a long file is mostly lines nobody changed. The conflicts are six places in forty thousand lines, and the work is getting from one to the next without losing your place. Riffle 2.3.0 brings the fold you already use in a diff to the merge window, and makes large files of every kind noticeably faster.
Hide unchanged lines in a merge
The merge window can now fold long runs of unchanged lines, the same way a two-way comparison does. Each fold closes in the local, result, and remote panes together, keeps three lines of context next to every change, and its seam stays level across all three panes as you scroll.
Click a seam to open it, or ⌥-click to open everything. The gutter chevrons open and close one run at a time, and the footer has a Hide Unchanged Lines toggle and a count of how many lines are hidden, which you can click to show them all again. It follows your existing Hide Unchanged Lines preference, so a long merge opens already folded if that's how you like to work.
The result pane is the file you're writing, so it's careful about folds. Find still searches folded lines, and stepping onto a match opens the fold around it. If you type into a fold, or the caret moves into one with an arrow key, the fold opens rather than letting you edit lines you can't see. Resolving a conflict next to a fold leaves it where it is.
Large files, much faster
This release went looking for everything that still made a large comparison feel heavy, and it found a lot:
- Reloading no longer freezes the window. After you had scrolled down through a large file, anything that reloaded it (a fold, ⌘R, a whitespace or view change, the file changing on disk) could stall for seconds. On a 60,000-line file that went from 19 seconds to under one.
- Jumping deep into a file is instant. Change bands and line numbers appear straight away, and the text follows a moment later instead of the window waiting for it.
- Large merges open and scroll smoothly. A 40,000-line merge opens more than ten times faster, and scrolling it no longer stutters.
- Folding and syntax coloring start faster, with fold toggles on very large comparisons up to 18 times quicker.
Text that stays in line
Two alignment bugs are gone as well. Deep in a large file, the unified view and the merge result could show text thousands of rows away from its own line numbers and change bands. And in fonts with extra line spacing, such as Inconsolata, every blank line was drawn a fraction too tall, so the text slowly drifted away from its markers further down the file. Every row is now exactly where its line number says it is, in every font, and the text itself sits where it always did. The merge result's gutter also makes room for five-digit line numbers instead of cutting off the first digit.
2.3.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 has the rest.