Chapter 14. Adding Functionality with Extensions

While the core of Mercurial is quite complete from a functionality standpoint, it’s deliberately shorn of fancy features. This approach of preserving simplicity keeps the software easy to deal with for both maintainers and users.

However, Mercurial doesn’t box you in with an inflexible command set: you can add features to it as extensions (sometimes known as plug-ins). We’ve already discussed a few of these extensions in earlier chapters.

  • Simplifying the Pull-Merge-Commit Sequence covers the fetch extension; this combines pulling new changes and merging them with local changes into a single command, fetch.

  • In Chapter 10, we covered several extensions that are useful for hook-related functionality: acl adds access control lists; bugzilla adds integration with the Bugzilla bug tracking system; and notify sends notification emails on new changes.

  • The Mercurial Queues patch management extension is so invaluable that it merits two chapters and an appendix all to itself. Chapter 12 covers the basics; Chapter 13 discusses advanced topics; and Appendix B goes into detail on each command.

In this chapter, we’ll cover some of the other extensions that are available for Mercurial, and briefly touch on some of the machinery you’ll need to know about if you want to write an extension of your own.

In Improve Performance with the inotify Extension, we’ll discuss the possibility of huge performance improvements using the inotify extension.

Improve Performance ...

Get Mercurial: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.