Tip of the Week: Hgwatchman to wrangle those huge Mercurial repos

Reading Time: < 1 minute

Last week, we had an amazing 10th anniversary meetup for Mercurial! Sean Farley invited Facebook‘s Ryan McElroy told us about an exciting open source extension to Mercurial that the team at Facebook has been using for some time now. As with most commercial software endeavors, the code base at Facebook grows every day, and as a result specific operations can be time consuming. You can watch the talk here, or read my summary below.

There must be a better way

In response to this business need, Ryan and his crew invented the hgwatchman extension and released it on Bitbucket to the open-source community. If you have large latency with your repo operations in Mercurial, give it a spin. Instructions to build the extension are in the README; Ryan’s real-world observations of performance deltas are contained below.

How the magic happens

Behind the scenes, hgwatchman is monitoring the filesystem for changes and keeping an index of those changes between operations, instead of stat on every file at runtime.

It’s trivial to install, yet gives a performance boost to repos with large filesets. Check out the video above if you’d like know more. Let us know what you think in the comments!

Watch out for news and info from our @AtlassianDev Twitter feed!

Follow me at @bitbucketeer!