The latest kdiff3 currently shipped with Tumbleweed is unsuitable for everyday use. I, for example, use it as my go-to `git mergetool` and I need that a lot. And it must be reliable and not messing up merge-output. Since the upgrade from 1.8.4 to 1.9.2, many regressions have to be experienced, please see the list of fixed issues below.
From a distribution point of view, I see two options: Fix-up 1.9.2 like proposed here, or (really!) downgrade to 1.8.5 until a new reliable 1.9 release comes out. I have contributed many fixes to upstream meanwhile.
- Remove GCC 11 build fix:
* 0001-Explicitly-include-limits-for-compatibility-with-gcc.patch
now contained in squashed patch
- Add collected fixes from upstream master:
* 0001-Collected-fixes-from-master.patch
contains the original and many more fixes:
+ misalignment and wrong conflict resolutions when using manual
alignment markers
+ uninitialized variables causing crashes
+ hangs and crashes due to wrong loop conditions
+ wrong handling of new-line at end-of-file
+ spurious insertion of empty lines in merge result
+ access of uninitialized iterators causing crashes
+ wrong buffer length calculations causing out-of-bounds access
+ wrong bit-logic causing comments to always be treated as white-space
+ crashes when hitting a key on empty merge results
+ technical details allowing fixes to be cherry-picked
OBS-URL: https://build.opensuse.org/request/show/902836
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kdiff3?expand=0&rev=31
- Update to 1.9.0
* Rewrite of SourceData::FileData::preprocess now only loops
through file contents once.
* Major rework of event handling
* Take advantage of Qt and boost signal/slot pattern to avoid
needless nullptr checks.
* Introduce LineRef wrapper class
* Add enum types and use existing ones.
* Split out doDirectoryCompare from improveFilenames
* Stop mis-using c style [] pointer access
OBS-URL: https://build.opensuse.org/request/show/889922
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kdiff3?expand=0&rev=22
- Update to 1.8.5:
* Fix url handling for drag and drop (kde#417189)
* Fix regression in handling paste from clipboard to blank diff
window (kde#426823)
* Fix link detection via KIO
* Drop custom event filter in OpenDialog. We now use
FileNameLineEdit instead as in the main window.
* Fix url/path handling bugs for remote files
* Don't ignore stat errors unless it tells us the file was not
found
OBS-URL: https://build.opensuse.org/request/show/865654
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kdiff3?expand=0&rev=18
- Update to 1.8.3:
* Fixed reload on Windows (kde#423001)
* Fixed error handling during directory compare
* Only give one error message per directory compare operation
* Fix crash when clipboard is not available (kde#419722)
* Rework initial window display and full screen toggling
* Treat /dev/null as non-existant as git expects (kde#421048)
OBS-URL: https://build.opensuse.org/request/show/817051
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kdiff3?expand=0&rev=13
- Update to 1.8.2:
* Allowing editing of blank lines and don't mark newly inserted
lines as a conflict (kde#411472)
* Remove broken attempt to optimize drawing on horizontal scroll
* Fix line numbers not shown. Use QString::number directly not
through a format string. (kde#418813)
* Correctly support "Print Current Page"
* Don't attempt to free nullptr in SourceData::FileData::reset()
* Make Preference dialog panes scroll-able if too large to fit on
screen
* Fix dialog filter on windows
* Switch to QElapsedTime for timing avoids explicitly undefined
behavior inside qt if time is changed
* Fix sync mode
* Make matching in CvsIngnoreList always honor bCaseSensitive
setting
* Don't use temporary with QLatin1String constructor, strange
things will happen
* ignore oversized cvsignore files
* Fix '-L' parameter handling (kde#410962)
* Restore accidentally deleted --auto option
* Fixing missing menu items (kde#411602), also resolves a
potential crash in MergeResultWindow::slotUpdateAvailabilities
(kde#407745)
* Prevent intermittent crash during reload/refresh
* Show diff for empty/missing files (kde#410008)
* Don't give false error when comparing empty folders
* Close files when not in use - Fixes "Too many open files" bug
(kde#408991)
* Avoid crash when receiving mouse or key events during early
startup (kde#407829)
* Don't try to manually build url if parent is not set
* Fix crash when canceling by using only one event loop in
ProgressDialog
* Don't append to already complete url
* Fix manual url building in FileAccess::setFromUdsEntry -
scheme should not change now
* Fix craft install instructions for windows (kde#405918)
* Fix crash in OptionDialog::slotApply() (kde#411586)
* Fix crash in MergeResultWindow::slotUpdateAvailabilities
(kde#407745)
* Fixed redraw for horizontal scrolling (kde#407894, kde#399070)
OBS-URL: https://build.opensuse.org/request/show/789696
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kdiff3?expand=0&rev=11
- Update to 1.8:
* Ported to Qt5/KDE Frameworks 5
* Bugfix: Show Identical files setting not applied after rescan
* Change parameter errors to use dialog on Linux as well as
console output
* Don't sort twice when sorting in reverse order
* Fix memory leak introduced in 0.9.91
* Implement Cut/Paste
* Don't enable "Choose C for Everything" on two way merge
* Cleanup code
- Update package summary and description
- Run spec-cleaner
OBS-URL: https://build.opensuse.org/request/show/702848
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kdiff3?expand=0&rev=8
- update to 0.9.98:
* Text rendering now with QTextLayout fixes the following issues
+ Correct handling for variable width fonts.
+ Corrected display of highlighted text with Qt4.8.x on Ubuntu and Mac.
+ Improved handling of texts with both right to left and left to right languages (mixed Arabic and western texts).
+ Improved handling of Chinese and Japanese.
+ Whitespace characters are now shown as dots for spaces and arrows for tabs, and not only in differences.
* Bugfixes.
- removed kdiff3-fix-save-relative-path.patch (included upstream)
OBS-URL: https://build.opensuse.org/request/show/313387
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/kdiff3?expand=0&rev=3
- update to 0.9.96:
* KDiff3FileItemActionPlugin : Context menu that also works in dolphin (for KDE>=4
* Parser for preprocessor commands. (Allows single apostrophs ')
* Fix crash on A/B-overview (infinite recursion)
* Fix clearcase temp files not deleted problem on windows
* KDiff3 plugin: When launching KDiff3 konqueror isn't blocked anymore
* String corrections (Frederik Schwarzer)
* Fixed writing to KIO.
* Fixed white space merge default options
OBS-URL: https://build.opensuse.org/request/show/87458
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kdiff3?expand=0&rev=18