Skip to content

Releases: iagodpassos/libremerge

LibreMerge 0.9.6

Choose a tag to compare

@iagodpassos iagodpassos released this 27 Sep 21:45
9cf37fe

Folder comparison, the WinMerge way

This release grew out of @KrokusPokus's comparison of LibreMerge and WinMerge in #7: the folder comparison now offers WinMerge's compare methods and View filters, and a bug found on the way made it honor the ignore options. Thank you!

Added

  • Compare methods. WinMerge's seven ways of deciding that two files are equal: Full Contents (the default), Quick Contents, Binary Contents, Modified Date, Modified Date and Size, Size and Existence. Pick the default under Options > Compare > Folder, or click the method shown on the right of a folder comparison's status bar to switch and recompare at once, as in WinMerge.
  • View menu filters. Show or hide identical, different, left/middle/right unique, skipped and binary items, plus the 3-way submenu (only the left, middle or right side different or missing). Each folder comparison keeps its own set, saved with WinMerge's defaults; the status line tells how many items the filters hide. In tree mode a folder stays visible while something inside it is shown.
  • Options laid out like WinMerge's. The category list is now WinMerge's page tree (General; Compare with General and Folder under it; Backup Files), every option sits on WinMerge's page and at its position, the title names the open page ("Options (Compare > Folder)"), and Defaults resets the current page only.

Fixed

  • Folder comparisons honor the ignore options. Full Contents compared every file byte by byte, so the whitespace, case, blank line and EOL options and the line filters had no effect on folder results. Files up to 4 MB are now compared as text, up to 64 MB with Quick Contents and larger ones byte by byte, WinMerge's limits, and the Result column names the file type: "Text files are different", "Binary files are identical".
  • The AppImages run on glibc 2.35 again (Ubuntu 22.04, Mint 21, Fedora 36). Since 0.9.3 the bundled libarchive needed glibc 2.36; it is now built without that one dependency. Found by AppImageHub's test (AppImage/appimage.github.io#3863).
  • No console noise. Started from a terminal, a folder comparison no longer prints "Binary files ... differ" for every binary pair.

Changed

  • Files the file mask leaves out are hidden by default, as in WinMerge; View > Show Skipped Items lists them again.
  • The .bak backup switch moved from General to Options > Backup Files, where WinMerge has it (your setting is kept).

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+), also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.35+, nothing to install), also brew install --cask iagodpassos/tap/libremerge with Homebrew on Linux

LibreMerge 0.9.5

Choose a tag to compare

@iagodpassos iagodpassos released this 26 Sep 16:42
c8261eb

Linux menu integration, archives against folders, 3-way folder operations

LibreMerge now feels at home on Linux desktops, closes the last gap in archive comparison and makes the 3-way folder view fully operational.

Added

  • Copy and delete in the 3-way folder comparison. The 3-way view from 0.9.4 was read-only. Its context menu now offers every pairwise copy direction (left, middle and right to each other side), delete on one side and delete on all sides, enabled by the same rules as WinMerge's folder view. When a copy touches two sides of a row that also exists on the third, the result stays blank until the next recompare (F5), as in WinMerge, since the copy says nothing about the third side.
  • Archives against plain folders. A zip, 7z or tar can now be compared with a regular folder, 2- or 3-way and in any position, from the open screen, the command line or drag and drop. Only the archive sides are extracted, and their headers show the archive name, following WinMerge's DecompressArchive.
  • Applications menu on Linux. Run the AppImage once with --install-desktop-integration and LibreMerge shows up in the GNOME or KDE menu with its icon, and in "Open with" for files. --remove-desktop-integration takes it out again.
  • Homebrew on Linux, complete. The cask installs the AppImage for your architecture, adds the menu entry and puts a libremerge command on your PATH. Homebrew on Linux exists thanks to @ta7mid, whose pull request (iagodpassos/homebrew-tap#1) brought the AppImage to the cask.
  • A new About box, modeled on WinMerge's: version, warranty notice, a link to the project on GitHub and a Contributors button listing everyone who helped: the community (thank you @Jammmmm, @evpix, @voidray and @ta7mid), the WinMerge team, the authors of the Crystal Edit syntax parsers and the components LibreMerge builds on. The same list is in CONTRIBUTORS.md.

Fixed

  • Folder comparison crashed on Intel Macs. The engine compares file contents on worker threads that keep 512 KiB of read buffers on the stack, sized for Windows, where threads get 1 MiB. macOS gives them 512 KiB, so on Intel the comparison ran out of stack as soon as it read two files. The engine's threads now get 8 MiB, like on Linux. Apple Silicon was not affected, by a margin of about 12 KiB.
  • About item on macOS in Portuguese. With the interface in Brazilian Portuguese, the About item in the app menu opened the image Overlay submenu, because Qt matched "Sobreposição" against "Sobre" ("About"). Menu roles are explicit now.
  • Qt's own texts follow the interface language. The dmg and the AppImages now carry Qt's translations, so standard buttons like Cancel, the text-field context menu and, on macOS, Services and Hide in the app menu are translated along with the rest of LibreMerge.
  • One Enter, one comparison. With the window inactive, Enter on the open screen could start the same comparison twice, and with an archive among the sides that could crash during extraction. Enter now opens exactly one comparison.

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+), also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install), also brew install --cask iagodpassos/tap/libremerge with Homebrew on Linux

LibreMerge 0.9.4

Choose a tag to compare

@iagodpassos iagodpassos released this 08 Sep 23:17
388e90e

3-way folder comparison

The three-sided workflow is complete now: files, images and, with this release, folders.

Added

  • 3-way folder comparison. Pick three folders on the open screen (or pass three folders on the command line) and the comparison shows middle size and date columns, the WinMerge result texts (Left only, Middle only, Right only, does not exist on one side) and the suffix telling which pair stayed identical, like "(left and right are identical)". Double-clicking an item present on all three sides opens the 3-way file comparison; on exactly two, the 2-way of the pair that exists. The 3-way view is read-only in this release: copy and delete between three panes come later, and the 2-way view keeps both.
  • Folder rows update when you save. Saving a comparison opened from a folder view refreshes the matching row in place, WinMerge's UpdateChangedItem behavior: result, sizes, dates and the status-line counters, with no rescan. It works for text, table and image comparisons, and also inside archive comparisons.

Fixed

  • Thin marker for one-sided text. When a word exists on one side only, the other pane now shows a thin vertical mark at the exact insertion point, matching WinMerge's zero-width word diffs. Thanks to @voidray for the report and the side-by-side screenshot in #6.
  • No more ghost tab from the Finder service. Launching a comparison from the Finder's "Compare with LibreMerge" context menu with the app closed used to leave an empty untitled tab behind; the untouched startup placeholder now closes itself, and anything you actually typed stays.
  • Enter on the open screen works everywhere. The 0.9.3 shortcut required the focus inside a path field; it is window-wide now, the first field takes the focus when the screen opens, and the fix was verified with real key events on Linux.

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+), also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install)

LibreMerge 0.9.3

Choose a tag to compare

@iagodpassos iagodpassos released this 06 Sep 23:50
f325ea8

Archive comparison

LibreMerge now opens archives, closing another gap with WinMerge's feature set.

Added

  • Archive comparison (zip, 7z, tar and compressed tar, plus single compressed files like log.gz). A pair of archives extracts to temporary folders and opens as a folder comparison, following WinMerge's flow: the tab and the pane headers show the archive paths instead of the extraction folders, compound formats (tar.gz) unpack in one pass, and an archive wrapping a single nested archive is unwrapped again. Double-clicking a difference opens the usual text, table or image comparison. The extracted copies live as long as the tab; nothing is packed back into the archive, which matches WinMerge. The backend is libarchive, bundled in the dmg and in the AppImages, so there is nothing to install. Results were cross-checked against WinMerge on Windows over the same archives.

Fixed

  • Enter starts the comparison from anywhere on the open screen. The 0.9.2 hookup only worked with the focus inside a path field; after a drag and drop the focus could rest on the tab bar and the key died (reported on Linux). The shortcut is window-wide now, the first path field takes the focus when the screen opens, and the fix was verified with real X11 key events against the Debian 12 AppImage.

Packaging

  • The Debian 13 .deb is discontinued for lack of downloads; the AppImages cover any distro with glibc 2.36 or newer. If you relied on the .deb, open an issue and it comes back.

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+), also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install)

LibreMerge 0.9.2

Choose a tag to compare

@iagodpassos iagodpassos released this 03 Sep 00:07
1696f81

Undo that survives Recompare

This release closes a long-standing limitation: pressing F5 no longer wipes the undo history. It also ships a small quality-of-life addition on the open screen.

Improved

  • Undo history survives Recompare (F5). Recompare used to rebuild the pane alignment and clear the undo stacks along the way; this was even listed under known limitations. The realignment is now applied as lightweight ghost-line edits that replay silently around your own changes during undo/redo, mirroring how WinMerge's rescan keeps its undo intact. Edit, recompare, undo, redo: everything stays consistent.
  • Enter starts the comparison. On the "Select Files or Folders" screen, pressing Enter in a path field now triggers Compare, like WinMerge's open screen.

Fixed

  • Undoing a merge no longer risks phantom empty lines. Undoing a copy over alignment filler could silently turn the filler into real empty lines, numbered in the gutter and written to the file on the next save. The ghost markers are now restored together with the text.
  • Undo selection matches WinMerge. Undoing a merge re-selects the difference, so it can simply be merged again; undoing typing no longer selects anything.

Docs

  • The README now documents how to set LibreMerge up as git's merge and diff tool (git mergetool / git difftool) on macOS and Linux.

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+), also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install)
  • Debian 13 (amd64): a native .deb for apt integration

LibreMerge 0.9.1

Choose a tag to compare

@iagodpassos iagodpassos released this 28 Aug 22:31
v0.9.1
e34b325

Inline-difference scroll, precisely on target

A quick follow-up to 0.9.0, fixing an issue reported by @Jammmmm in #3 — thanks for the sharp eye!

Fixed

  • "Automatically scroll to first inline difference" no longer overshoots. The horizontal target was computed from raw font metrics, which drift from the rendered position on lines containing tabs (and other formatting) — with enough drift the changed word ended up hidden just off-screen to the left. The scroll now asks the text layout itself for the exact position, so the first changed word lands ~5 characters from the left edge every time, on every pane.

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+) — also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install)
  • Debian 13 (amd64): a native .deb for apt integration

LibreMerge 0.9.0

Choose a tag to compare

@iagodpassos iagodpassos released this 28 Aug 19:09
v0.9.0
9549f4d

Options dialog, scroll to first difference, and recent comparisons

Both features requested by @Jammmmm land in this release (#3, #4) — thanks for the steady stream of good ideas!

New

  • Options dialog (Edit > Options on Linux, LibreMerge > Settings on macOS), WinMerge-style with categories:
    • Automatically scroll to first difference (#3) — comparisons open right at the first change, with an optional inline variant that also scrolls long lines horizontally to the first changed word, synchronized across the panes
    • Show the "Select Files or Folders" screen at startup
    • Ask before closing a window with multiple tabs
    • The .bak backup toggle, relocated from the comparison options
    • Interface language: system default, English or Brazilian Portuguese (applies on restart)
    • The comparison options moved into the dialog's Compare page
  • File > Recent Files or Folders (#4): reopens a previous comparison — files, CSV tables, images or folders — in one click, numbered like WinMerge's list and keeping the last 9

Fixed

  • Dropping a file onto the panes of a File > New comparison could crash on macOS
  • Dialogs now open centered on the application window on Linux (the AppImage prefers XWayland for this until the bundled Qt is modernized; QT_QPA_PLATFORM=wayland still opts back in) and appear as native sheets on macOS
  • The folder-comparison tab shows the folder names even when the paths carry a trailing slash

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+) — also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install)
  • Debian 13 (amd64): a native .deb for apt integration
  • Debian 12 users: use the AppImage (it is built on a Debian 12 base and runs there)

LibreMerge 0.8.1

Choose a tag to compare

@iagodpassos iagodpassos released this 26 Aug 20:44
v0.8.1
50e553e

First round of image-compare feedback, fixed

Two fixes from real-world testing of 0.8.0 (thanks @evpix for the report in #2!):

Fixed

  • Drag & drop into the selector fields no longer inserts a raw file:// URI (#2): on Linux, dropping a file directly onto a path field of the "Select Files or Folders" screen pasted file:///home/... and the comparison refused to start. Drops now resolve to the local path and land in the field under the cursor — and pasted or typed file:// URIs are resolved too.
  • The AppImage now works properly on pure Wayland sessions (GNOME): the Wayland platform plugin shipped without its helper plugins, so the window came up without buffers and without decorations (Failed to load client buffer integration: "wayland-egl"). The client buffer integrations, the xdg-shell integration and the window decorations are now bundled. This affected every AppImage since 0.7.2 — X11 and XWayland sessions (e.g. Linux Mint) were never affected.

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+) — also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install)
  • Debian 13 (amd64): a native .deb for apt integration
  • Debian 12 users: use the AppImage (it is built on a Debian 12 base and runs there)

LibreMerge 0.8.0

Choose a tag to compare

@iagodpassos iagodpassos released this 26 Aug 11:41
v0.8.0
8e92be5

Image comparison arrives — 2-way and 3-way

LibreMerge now compares images, porting WinMerge's own image-diff engine so the behavior matches what WinMerge users already know (requested in #2).

New

  • Image comparison for pairs and triples (PNG, JPEG, GIF, TIFF, WebP, BMP, TGA, ICO and more): block-level pixel differences with the classic gold highlight, navigated like any other comparison
  • The full WinMerge control set: block size and highlight alpha, color-distance threshold, insertion/deletion detection for shifted rows/columns, XOR / alpha-blend / animated overlays, blink mode, and zoom with cursor-anchored Ctrl+wheel — settings are sticky across comparisons, like WinMerge's
  • Editing: copy differences between sides with undo/redo, rectangle select with cut/copy/paste (floating paste, committed with Enter), resizing from the edges, rotation and flips, saving with the usual .bak backup
  • Multi-page: animated GIFs and multi-page TIFFs compare page by page
  • Difference minimap in the settings panel — click it to center every pane on that spot
  • 3-way image comparison with side classification (left-only / right-only / conflict)
  • Folder compare (optional, off by default): image pairs can compare by pixel content with the same color-distance threshold
  • Fully translated to Brazilian Portuguese, matching WinMerge's terminology

Fixed

  • 3-way copy commands are now pane-relative like WinMerge: Alt+Right on the middle pane pushes the change into the right pane (previously every merge targeted the middle)
  • Pane headers/status no longer make the layout jitter when hovering a small window
  • The overlay alpha value label follows its slider live

Downloads

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+) — also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install)
  • Debian 13 (amd64): a native .deb for apt integration
  • Debian 12 users: use the AppImage (it is built on a Debian 12 base and runs there)

LibreMerge 0.7.3

Choose a tag to compare

@iagodpassos iagodpassos released this 24 Aug 22:32
53ec86b

Theme polish everywhere — and a leaner download list

Improvements

  • Folder comparison now follows the Light/Dark theme fully: themed toolbar, filter field and status bar, a white tree in light mode, and proper dark category colors (amber/blue/green/red tuned for light text) in dark mode — no more light pastel rows on dark chrome.
  • Toolbar icons re-render for the active theme in every view: dark glyphs on light toolbars, light glyphs on dark ones.
  • The file compare's bottom status line joins the themed chrome, and focus jumps to the results list when a folder scan finishes.

Downloads, simplified

  • macOS: universal dmg (Intel + Apple Silicon, macOS 12+) — also brew install --cask iagodpassos/tap/libremerge
  • Linux: AppImage for x86_64 and arm64 (any distro with glibc 2.36+, nothing to install) — validated headless on bare containers
  • Debian 13 (amd64): a native .deb for apt integration
  • Debian 12 users: use the AppImage (it is built on a Debian 12 base and runs there)