Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Mercurial 3.5 Released (gregoryszorc.com)
140 points by ngoldbaum on Aug 4, 2015 | hide | past | favorite | 27 comments


I've said this in the past on HN posts about mercurial but it bears repeating: if you had bad experiences with mercurial in the past, I strongly urge you to spin up one of the latest releases. Engineers at Google, Facebook, Mozilla, and Unity contribute regularly and mercurial has become more feature rich and substantially faster over the past few years.

Mercurial does everything that git does (in fact, you can pull from or push to git repos with hg-git), has a UI that's easier to learn, and has online help that is terse and helpful. As far as killer features go, check out phases[1] and changeset evolution[2]. The latter is still at alpha level and the UI is unstable, but I use it for day-to-day work and find it incredibly useful.

[1] https://mercurial.selenic.com/wiki/Phases

[2] https://bitbucket.org/marmoute/mutable-history


I'm also a big fan of hg revsets: https://www.selenic.com/hg/help/revsets

Granted, it's not a commonly used feature by solo devs working on their own projects, but is useful for team repos that get large enough where you need to do audits on the codebase.


Agreed, revsets are another amazingly useful feature. Also check out templates[1], which let you customize pretty much everything about hg's output.

[1] http://jordi.inversethought.com/blog/customising-mercurial-l...


Even though I use git day-to-day, I keep around an hg-git clone specifically for revsets. What's the point of a version control system if you can't actually find anything in the history?


Thanks for the tip.

I never thought of this particular use case. Will give it try.


Oh, mercurial was my old love but due to peer pressure I'm now a git user. Always liked hg better and so happy to hear it's still vibrant :)


After it became clear that darcs wasn't going to win the next gen source control wars I switched to mercurial. I now use and love git for its own charms, but I'd love to come across mercurial again professionally.

I own up to my preference to rewrite history—git has facilitated that in equal measure to mercurial—but my first source control love is mercurial queues. Queues taught me how to structure and sequence my changesets, and through that the structure of codebase evolution. The user experience is still unmatched by any patch queue on git.


Check out the mercurial evolve extension. You can now do all kinds of local rewriting, collapsing, whatever using regular mercurial commits.


It's worth looking at hg-git. It works brilliantly --- seamless interoperability between hg and git; you just tell hg to clone a git repository and it Just Works. Merges, branches, tags, the lot, but with sensible commands and workflow.

There are a few rough edges; creating a new branch (git branches are mapped onto hg bookmarks) is a bit clunky, and it's easier to create the branch at the git end and then do an hg pull to get all the metadata set up, but I mainly use it with github and github's UI for handling branches is pretty good.


Ah yes, changeset evolution, or, as I like to think of it, how to do rebasing properly. However, try convincing git aficionados that there's a much safer way of rebasing than git rebase. :-(


Every couple of months I get bummed out Mercurial lost the mindshare war years ago. I used Mercurial before Git and it was perfectly fine and easy to reason about. http://hginit.com/ helped me start out, and it was amazing to be able to work on code without blocking other team members.

I know Git now not because it's nice to use, but due to rote memorization and muscle memory.


There's a lot of times when the alternative may be (if one could measure these things), '20% better' than the mainstream tech.

The things is, they'd need to be '500% better' to offset the network effect of the mainstream tech.


I'm very excited about this release. I would like to promote my own small and insignificant contribution to it.

I made a few improvements to the template engine to make it easier to write your own templates. An example is the new built-in `hg log --template=status` or `hg log -T status` for short. For each commit it displays file additions, removals, and modifications using the same style as `hg status`. Copies are displayed if you pass the --copies/-C flag, just like `hg status` too. You can see this template in the map-cmdline.status file in the installed Mercurial templates directory:

https://selenic.com/hg/file/tip/mercurial/templates/map-cmdl...

I especially like this example because it exhibits Mercurial's extensibility and overall philosophy very well. Rather than cluttering the CLI with a bunch of extra obscure options (such as a hypothetical --status option), we provide a generic mechanism where more advanced users can hook their own customisations into. We do not complicate the UI for the uncommon case.


Mercurial truly rocks. Yes, Git seems to have won the mindshare of developers in the OSS world, but Mercurial is quite strong in a corporate environment. And for some reason HgLab [1] (of which I am the author of) seems to be quite popular in medical institutions.

[1]: https://hglabhq.com


Some really exciting updates in here. It seems that while Git is popular for open source projects (thanks to GitHub), Mercurial is popular for internal repos and companies. That's personally how I use it.


I'd still use Mercurial if I could but every library/framework I use on a regular basis lives in a git repo so I just stopped fighting the current and learnt enough git to keep my sanity.


hg-git and hg-github

I just started using them yesterday. So far so good.


I've been using hg-git for years for almost all my git contributions. Works well.


really? Like what?

I'm looking through the change log and although its large, it also seems rather mundane.

Are there new standout features beyond the new network protocol?


Always lovely seeing Mercurial work. It really is the elegant tool for source control.


Seems like the link for downloading OS X binaries is broken.

If you tell me "just use Homebrew" I will berate you a LOT.


There is actually an issue filed for this bug. https://bitbucket.org/segv/hg-website/issues/23/download-now...


You've got the wrong bug tracker: http://bz.selenic.com/show_bug.cgi?id=4769


I didn't file that bug I just found it. Thanks for the link to the other bug though.


People still use Mercurial?


if we rewrote mercurial in clojurescript and renamed it to ninja-control everyone would be blown away by the feature list


People still somehow believe that a technology monoculture is ever a good thing?




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

Search: