Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Interestingly, Mercurial had solved the bundles more than ten years ago and back then they already worked better than Git's today



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


Yeah. That sounds a bit right. But from what I read they were limited in what they could implement due to missing git features. For example phases.

https://ahal.ca/blog/2024/jujutsu-mercurial-haven/ was a post on that.

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.

They do have revsets ♥


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...


Someone once put together an llm backed list of things people on hn post about a lot, mine was about this “other” dvcs system.

It is superior, and it’s not even much of a comparison.


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.


When I've had mercurial issues, I went to the mercurial channel on libera, or to their manual. But then, haven't ended up with a stack trace yet.


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".


But branches were more problematic.


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.

https://mercurial.aragost.com/kick-start/en/bookmarks/


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).

[0]: https://www.mercurial-scm.org/doc/evolution/tutorials/topic-...




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: