This page is primarily intended for Mercurial's developers.
Information on working on the Mercurial code base.
1. Start hacking
WritingExtensions - how to write Mercurial extensions
Theming - how to create new styles for Mercurial's web interface
DeveloperBasics - some basic code examples
MercurialApi - The internal API for Mercurial
TranslatingMercurial - how to translate Mercurial into your own language
2. Contributing code
Contributing changes - how to send us your changes
Coding style - how to make your code pretty
WritingTests - how to add tests to the test suite
HelpStyleGuide - how to write nice help
CompatibilityRules - how we keep our existing users from crying
Design - Mercurial's data structures and how it uses them
FileFormats - list of Mercurial's disk file formats
WhatGoesWhere - the project architecture
WireProtocol - the push/pull changegroup protocol
DebuggingFeatures - how to poke around in Mercurial's internals
4. Working with the community
DeveloperRepos - where to find various public repositories of Mercurial work
IRC - where most of the developers hang out
5. Feature proposals
NewFeatureDiscussions - A page of links to discussions about new features.
6. Developer tips
MacOSXTools - Installing the tool chain on Mac OS X.
Using Wine to tests Windows support under Linux
Easy way of starting Mercurial hacking on Windows with HackableMercurial