
Mercurial is, by far, the best revision control application I’ve ever used, with Git a close second. Fundamentally, Mercurial does revision control correctly: distributed, clean CLI, and good documentation. I’ve never had any qualms with it, even in team settings. On the other hand, I have noted some complaints teammates have had with Mercurial, sometimes complaints causing them to stop using Mercurial or DRCSs all together.
- Mercurial doesn’t maintain file and folder permissions. This becomes a problem when hosting a shared Hg repository on a machine without root access. Other group members add files to the shared repo via ssh and it’s up to the users umask to set file permissions. This means I may have files in my home directory which I can’t access.1
- Merging tools and file servers on Windows are lacking. Windows users expect the revision control to supply these tools. Unix users (including Mac OS X) are used to having file servers and merge tools supplied by the distribution of the operating system, not the revision control application. Some Windows users want GUIs like TortoiseSVN.2
- Binaries are handled terribly. Mercurial currently doesn’t good way to handle binaries. For instance, if a binary (such as an image) is moved, it’s considered a new binary. Keeping many binaries in revision control and moving them a lot will make the repo huge.
Aside from binary handling issue, I think the reason these “shortcomings” have never bothered me before is because I consider the file permissions to be a part of the operating system and the merge and server tools to be separate applications. Mercurial, thought easier to use with said external tool, is just as functional without and I will continue to use it as my main development tool.
- When I asked about the file permission problems on the Mercurial mailing list, the Mercurial maintainer responded with this:
Patches to inherit permissions from “.hg” are now in the crew repo which
will get merged into mainline shortly and show up in the 1.0 release
very soon.In the meantime, you’ll have to beat people into setting their umask
properly.
— Matt Mackall[↩]
- TortoiseHg is now available for Mercurial. [↩]
- None Found