5

I am running hgweb.cgi on a Windows 2003 server (IIS 6, Python 2.6.6), and have been having no issues until I recently upgraded from mercurial 1.6 to 1.7 and 1.8 (clients and central server). I have a single directory on the server containing all of my central repositories, and this directory is setup as a "collection" in the hgweb.config file. Even after upgrading to mercurial 1.8 on the server, hgweb.cgi will only list repositories that were created with mercurial 1.6 or earlier. Any repositories created with 1.7 or 1.8 are not listed. Attempting to access 1.7 or 1.8 repositories directly results in the following error message being displayed:

An error occurred while processing your request:

requirement 'dotencode' not supported

It seems like this issue is related to hgweb.cgi using mercurial 1.6, but how is this possible since I uninstalled 1.6 and installed 1.8 on the server? Is there a library file somewhere in the python directory that needs to be replaced/upgraded as well? What am I missing?

I am using the files in the mercurial webapp directory that was created after installing 1.8, only modifying hgweb.cgi and hgweb.config as needed.

Justin Holzer
  • 2,326
  • 2
  • 22
  • 22

1 Answers1

3

It's still running 1.6 from somewhere. Perhaps you have a .dll that came with tortoiseHg or some site-packages you don't know about, but 1.6 is somewhere and that's what's getting run.

Ry4an Brase
  • 78,112
  • 7
  • 148
  • 169
  • I can't find any mercurial related DLL files. I can only find hg.exe, both in the TortoiseHg directory and the mercurial install directory. In both cases, running `hg.exe --version` confirms that they are 1.8 – Justin Holzer Mar 08 '11 at 16:41
  • I know it's not a satisfying answer, but unless the old version is still in memory (still a running process that wasn't restarted) then 1.6 is somewhere on disk. Maybe search through the regsitry for 'tortoise' or 'hg' or 'mercurial' and see if there are any hits? Do you have tortoisehg on this machine at all? Also, most instructions I see for IIS+hgweb use python.exe not hg.exe (http://stackoverflow.com/questions/818571/how-to-setup-mercurial-and-hgwebdir-on-iis) are you sure the hg.exe is being run at all? – Ry4an Brase Mar 08 '11 at 18:34
  • I completely uninstalled python and mercurial. Re-installed Python 2.6.6, Mercurial 1.8.1, Mercurial 1.8.1 python package, and I am still having the same issues with not being able to view repositories created with mercurial 1.7+ – Justin Holzer Mar 22 '11 at 20:11
  • I know it's **still** not a satisfying answer but you only think you completely uninstalled. Perhaps there a .dll that was dropped somewhere by an IDE plugin or something else crazy, but if it's saying it can't handle dotencode you've got an old version somewhere that you don't know about. On linux I'd be going after this with strace and lsof, but I don't know the windows equivalents. – Ry4an Brase Mar 23 '11 at 03:33
  • +1 This answer led me to discover one of my servers had 1.6 because of a failed update while the others have 1.8. – scribble May 17 '11 at 18:21
  • Good, @scribble, glad it helped you if not the original questioner. – Ry4an Brase May 18 '11 at 16:08