io.github.mightycreak.Diffuse Diffuse Graphical tool for merging and comparing text files

Diffuse is a graphical tool for comparing and merging text files. It can retrieve files for comparison from Bazaar, CVS, Darcs, Git, Mercurial, Monotone, RCS, Subversion, and SVK repositories.

pointing keyboard console FSFAP GPL-2.0-or-later io.github.mightycreak.Diffuse.desktop https://mightycreak.github.io/diffuse/ https://github.com/MightyCreak/diffuse/issues https://github.com/MightyCreak/diffuse/raw/main/docs/images/screenshot_v0.7.7_main_window.png Main window https://github.com/MightyCreak/diffuse/raw/main/docs/images/screenshot_v0.7.7_about_window.png About window Romain Failliot romain@foolstep.com

Update to GNOME 44, improved GTK 3 support, initial support for Rust, added Turkish and Georgian translations, and a couple of fixes.

Added:

  • Language: initial support for Rust language (@alopatindev)
  • Translation: added Turkish translation (@libreajans)
  • Translation: added Georgian translation (@NorwayFun)

Changed:

  • Update from GNOME 42 to GNOME 44 (@MightyCreak)
  • Translation: updated Swedish translation (@eson57)
  • Dialog: prompt only once if several files needs to be reloaded (@yuriiz)
  • Use GTK3's Gtk.Application/Gtk.ApplicationWindow (@yuriiz)
  • Split `DiffuseApplication` and `DiffuseWindow` classes in their own files (@MightyCreak)
  • Use new Meson (from 0.50 to 0.55) and fixed deprecation warnings (@MightyCreak)
  • Mac: fix the shortcut for first/previous/next/last differences, now uses ⌘ instead of Ctrl (@krlmlr)

Fixed:

  • "Go to line..." dialog didn't show up (@MightyCreak)
  • Tech debt: use `transient_for` instead of the deprecated `parent` when creating a `Gtk.Widget` (@MightyCreak)
  • Documentation: prefer `pip3` over `pip` to ensure it works everywhere (@krlmlr)
  • Flatpak: add missing `--filesystem=xdg-run/gvfsd` privilege (@MightyCreak)

Update translations.

Changed:

  • Translation: updated Spanish translation
  • Translation: updated POT file
  • Translation: fixed issue with commented string that still needs translation

Add port to Mac OS.

Added:

  • Port to Mac OS (@hugoholgersson)

Changed:

  • Documentation: added dev setup for MacOS
  • Documentation: updated the dependencies
  • CI/CD: GitHub actions warnings

Fixed:

  • Fixed MyPy errors

Crashfix and French translation.

Added:

  • Documentation: added release process instructions
  • Translation: added French translation

Fixed:

  • Fixed #156: Preferences cannot be saved in latest release
  • Cleanups: use constructors instead of `new()` whenever possible in GTK classes

Mainly a maintenance release. It does increase the GNOME SDK's version.

Added:

  • Added a `--remove-obsolete` option for the update-translation.py script
  • Added links to VCSs in README.md
  • New keyword in config file: "option"
  • Added instructions to install and run from a custom directory

Changed:

  • Updated the translation files
  • Renamed POTFILES.in to POTFILES
  • Renamed io.github.mightycreak.Diffuse.metadata.xml.in to io.github.mightycreak.Diffuse.appdata.xml.in
  • Leaner README.md
  • Moved the documentation to docs/
  • In the CI, call the linters on the installed directory
  • Renamed application name from "Diffuse Merge Tool" to "Diffuse"
  • Linters can be run sooner (before installation)
  • Better messages when an error occurs while parsing the config file
  • Start converting the code to static types
  • Add more information about the dependencies in the documentation
  • Upgrade Flatpak GNOME's runtime to 42

Fixed:

  • >Removed the lasting lint errors (i.e. in main.py)
  • >Fix Flatpak runtime version in documentation

Patch release that introduces linters (flake8 and mypy).

Added:

  • Added linters (flake8 and mypy) and fixed some errors
  • Added lint jobs for both in the CI
  • Added a flatpak job in the CI

Changed:

  • main.py slimmed down by about 5000 lines
  • The new widgets.py is a bit fat though (~4000 lines)
  • Updated the translation files

Fixed:

  • The intense code cleaning seems to have fixed a bug with the `-c` argument (#120)

Patch release that fixes an error about APP_NAME and the Brazilian translation.

Added:

  • New options: log_print_output and log_print_stack, to print the log messages on the output and code stack
  • New log function: utils.logErrorAndDialog, to both log and show a dialog message

Changed:

  • Modularized the VCSs (reducing main.py by around 1300 lines)
  • Bump GNOME runtime version from 3.38 to 41

Fixed:

  • Fixed 'APP_NAME' error when opening non existing file
  • Fixed the Portuguese Brazilian (pt_BR) translation

Patch release to fix a bug when using the Flatpak package.

Fixed:

  • Fixed a Flatpak bug where the app couldn't call binaries on the host, such as `git`, `svn`, etc.

With this release, the main end-user change is the new icon. The rest is mainly maintenance improvements with a much more standard folder structure and starting to modularize the code. This is an ongoing effort as there is still a lot to do, but hopefully this would motivate some to contribute ;)

An important note though: the application ID has changed and is now io.github.mightycreak.Diffuse.

Added:

  • New icon and in SVG now
  • Started to modularize the code

Changed:

  • Changed AppID to io.github.mightycreak.Diffuse (as advised in the Flatpak documentation)
  • Renamed directory `translations/` to `po/`
  • Now uses POTFILES.in to list the files to translate
  • Translation strings are no longer sorted alphabetically, this will help when there will be several files in POTFILES.in
  • Updated the documentation and script in the `po/` directory
  • Add .desktop translations in .po files

Fixed:

  • Fixed some GTK deprecation warnings

Mainly under the hood changes in this release, so nothing really visible to the users in this version. That said, I figured it was a long time since the last release (4 months ago) and, as promised, I want Diffuse development to be a bit more active and iterative.

Apart from the maintenance changes 🧰, I think the main improvement is that Diffuse will soon be available through Flathub!

Added:

  • New Flatpak package, published on Flathub: com.github.mightycreak.Diffuse

Changed:

  • Replace old install.py with the more standard Meson
  • Remove u string prefixes since Python 3 is in UTF-8 by default
  • Replaced some interpolation operators (%) for the f string prefix
  • Use the window scale factor for the icons generation

Here is the v0.5.0. Unintentionally, this release happens exactly 6 years after the previous v0.4.8 release!

There is a lot to do on this application, and some features didn't make the release. The main one being the Windows installers. I think 6 years is too long to continue to wait until this bug is fixed. The Python scripts should work on Windows, but no executable is produced (yet) with the release.

Other than that, Diffuse v0.5.0 is now officially compatible with Python 3 and GTK 3! And it is synced to the latest commits from upstream (which were never released).

The next version will not take 6 years, I promise you! 😄

Added:

  • Added Pedro Albuquerque's Portuguese translation
  • Added Ã…ke Engelbrektson's Swedish translation
  • Added Guillaume Hoffmann's Darcs support improvements
  • Added Akom Chotiphantawanon's Thai translation
  • Added support for Git submodules
  • Added a preference and command line option to specify the version control system search order
  • Added .editorconfig file
  • Added .gitignore file
  • Added message when removing files during uninstallation
  • Added Python script to update all the translation files at once

Changed:

  • Convert to Python 3
  • Convert to GTK 3
  • Updated Python highlighting for Python 3 grammar
  • Updated copyrights years and authors
  • Improve Spanish translation
  • Convert translation README to MarkDown
  • Updated all the translation files

Fixed:

  • Fixed wrong icons directory for gtk-update-icon-cache
  • Fixed missing directories when uninstalling
  • Fixed bug introduced by r420 with RCS VCS
  • Fixed broken drag'n'drop since migration to Python3/GTK3
  • Fixed error when using '-m' in an SVN repo