How do I change the version of Mercurial that MacHg uses?

The Mercurial inside MacHg

MacHg includes its own slightly modified version of Mercurial. There are several small but important changes which have been added to this version of Mercurial. Largely they center around changes which are important for GUI clients but might not be suitable for the main Mercurial software. Note I (Jason Harris) have submitted all changes back to the main Mercurial project whenever possible or applicable. You can consult the source code of MacHg for any changes to the included Mercurial binaries to see the changes, but some of the most important changes are to do with the handling of temporary files Mercurial creates. In MacHg it's important that these temporary files can be easily ignored using the apple OSX FSEvents manager to reduce updates and possible race conditions.

Why you don't need a new version of Mercurial

Having an older Mercurial binary doesn't make much difference from the point of view of MacHg since MacHg is the entire "FrontEnd" to the Mercurial functionality; i.e. if there is some new feature or enhancement in Mercurial 1.5.2 that is not present in 1.4.1 then since MacHg is not using this enhancement, it doesn't matter in any case.

MacHg keeps pace with the major changes that occur in the Mercurial binary. (I follow the developments within the Mercurial community fairly closely.) But its a design decision not to always blindly use the latest Mercurial binary. I do this for stability reasons so I can test the combination of MacHg and the Mercurial binary. (Note: this is the same strategy that OSX uses for instance in that by the time you get a new operating system often many of the components which are included in OSX have already been updated. However for testing Apple upgrades the components of OSX with care.)

Changing the Mercurial binaries:

Some developers and other people might like to experiment with using a different version of Mercurial. If you want to change the Mercurial version used by MacHg, it's pretty simple. Inside the application bundle there is a folder LocalMercurial which contains the version of Mercurial that MacHg uses. For up to date instructions on what to change in this bundle see these instructions.