Not the only mercurial feature where that's the case.. sad, I keep rooting for the project to implement mercurial frontend over a git db, but they seem to be limited by missing git features.
Jujutsu (jj) is heavily inspired by Mercurial (though with some significant differences) and can operate with git as a storage backend. https://github.com/jj-vcs/jj
But, it looks like they are trying, and at least they imposed some sanity like in the base commit ID. I wonder if they have anything like hg grep --all, hg absorb and hg fa --deleted yet.
I should say I've never been expert with any VCS — just enough to get things done. I know it has `absorb`, and `grep` can be approximated with a `diff_contains()` revset, but it's not pretty (and aliases are not powerful enough to compensate). Hopefully polish will come over time. I don't know `hg fa` at all.
I'm cautiously optimistic for jj's future because the git backend eliminates the main barrier to adoption.
hg fa is basically just an optimised blame/annotate "fast-annotate"
the awesome feature is --deleted which gives you the file with all the prior removals in context with revision info in it, which is incredibly useful for seeing how the file changed over time in a fairly concise way. Not a full unreadable mess, but those removals often have key details...
I used mercurial in anger for about 9 months or something, with a gitlab fork too. when git goes wrong there's forums, blogs, books and manuals. When hg does it's a python stack trace, good luck.
how did it solve them, and how are mercurial's bundles better than git's ones?
if I am reading the manpage right, the feature set seems pretty compatible. "hg bundle" looks pretty identical to "git bundle".. and "hg clone"'s "-R" option seems pretty similar to "git clone"'s "--reference".
Mercurial has had git-like "lightweight branches"/bookmarks without the revision record of mercurial named branches for over 15 years.
There are good reasons to use the traditional branches though.
The topics[0] feature in the evolution extension is probably even closer to Git branches, since they are completely mutable and needn't be a permanent part of your repo. Bookmarks are just pointers to changesets, and although that's technically how Git branches work, it's not how they work in practice in Mercurial because of its focus on immutability (and because hg and git work differently).