3 ms·
Interestingly, Mercurial had solved the bundles more than ten years ago and back then they already worked better than Git's today
by andrewshadura 2y ago
Interestingly, Mercurial had solved the bundles more than ten years ago and back then they already worked better than Git's today
- nine_k 2y agoBut branches were more problematic.
- capitainenemo 2y agoMercurial 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/ https://mercurial.aragost.com/kick-start/en/bookmarks/
- DrinkyBird 2y agoThe 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-tutorial.html https://www.mercurial-scm.org/doc/evolution/tutorials/topic-...
- capitainenemo 2y agoNot 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.
- kps 2y agoJujutsu (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 https://github.com/jj-vcs/jj
- capitainenemo 2y agoYeah. 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/ 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 ♥
- kps 2y agoI 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.
- capitainenemo 2y agohg 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...
- deleted 2y ago[deleted]
- dgfitz 2y agoSomeone 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.
- Already__Taken 2y agoI 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.
- capitainenemo 2y agoWhen 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.
- theamk 2y agohow 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".