Lazy merge commits. The descriptions of the changes are in the commits from the merged branches.
Fossil (https://fossil-scm.org/home/doc/trunk/www/index.wiki) doesn't fill out a default message, and sometimes that has annoyed me, but it does make you think about what you're doing. If you look in the Fossil and SQLite trees, almost all merges include a full description of what the merge was all about and why. Fossil also doesn't forget the entire history of the branch (including from which commit it was branched from), so it has that advantage too.