I have a central server for my Mercurial repositories. I just created a new repository on the server using hg init myrepo. The version of Mercurial on the server is 1.7.3.

From my client, I use hg clone http://myserver/myrepo. The version of Mercurial on my workstation is 1.7.5. On my client, I receive an error:

HTTP Error 500: requirement 'dotencode' not supported

From my brief Googling of this error message, my server and my client are both new enough to support the 'dotencode' requirement.

Is this just a red herring error message?

Other info: the server is Windows 2008R2 64-bit, the client is Windows 7.


An excerpt from the HG wiki:

If an older Mercurial version tries to access a repository that was created by a newer Mercurial version, an error message like

abort: requirement 'dotencode' not supported!

may be displayed, which means the Mercurial version used to access that repository doesn't know how to interpret it, because accessing it would require knowledge about the 'dotencode' capability.

If such an error message appears, a newer Mercurial version must be used to access the repository or the repository must be converted to an older format understood by that version (by using 'hg clone --pull')

This does not sound relevant since your client version seems to be higher than the server one (I think you should double check this), but this recipe is worth trying anyway.

  • Sorry about the late acceptance of your answer...I'm a bit behind in my SO usage! I ended taking the 'cowards way out' and migrated from an internally hosted Mercurial server to using BitBucket, which I'm really happy with so far. – David Montgomery Mar 29 '11 at 23:51

We don't really have any "red herring error messages" in Mercurial... :-)

The error is clear and it means that the version of Mercurial used on the server is too old to read the repository on disk. You already found the wiki page on the requires file.

Since you say the server is using version 1.7.2, then I think there must be another version installed in parallel on the server. (The version on the client is irrelevant here, you can mix any two versions when they interact over the network.)

I see you've migrated to Bitbucket, but if you hadn't, then my advice would be to search the server for a second installation of Mercurial. Searching for commands.py should find the one used by the webserver, and searching for library.zip should find the newer one used by TortoiseHg (assuming you used that to install it).


I had same problem with CentOS 6

Now you can solve this problem by update mercurial on your server.

You can download latest version of mercurial from most versions of OS here https://www.mercurial-scm.org/downloads

for CentOS 6 just copy corresponding link and make install with it by command

sudo rpm -Uhv https://www.mercurial-scm.org/release/centos5/RPMS/x86_64/mercurial-4.9-1+2.7.14.x86_64.rpm

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.