/!\ This page is primarily intended for Mercurial's developers.

Python 3

This is a status page for keeping track of what needs to be done to make progress on Mercurial on Python 3. Our current aim is to support Python 3.5.

What Works

hg version, hg debuginstall, hg init, hg files, hg manifest, hg log, hg diff, hg export, hg status, hg summary, hg config, hg identify, hg update, hg commit, hg branches, hg bookmarks works on Python 3 without using any out of core extensions. These won't work for you if you have out of core extensions enabled. There are certain things which don't work yet with these commands like revset, templates.

We have some handful of tests passing on Python 3. You can have a look at them in python3-whitelist


We will be happy to review patches and speed up the work related to Python 3. Before you start there are few things related to current porting and how things work currently. Most of our efforts are to make sure have Python 2 compatibility intact while making Python 3 run.

How to start

The practice we follow now is run commands which are not yet fixed and try to fix the exceptions raised. So our current approach is exception based.


Python3 (last edited 2017-06-29 02:15:48 by PulkitGoyal)