HTTP ERROR 500 when using hgweb on Windows

Issue #1 resolved
David M. Carr
created an issue

When attempting to browse an hg repository on Windows XP, I got the attached error.

Comments (7)

  1. Sebastian Sebastian repo owner

    Hgwebdir seems to be very complicated in combination with Windows, because I had recurring problems with the binary modules of Mercurial (osutil etc.).

    The only solution that worked during my tests was the following:

    • Install Python 2.6.6
    • Download the latest source code of Mercurial (in my case 1.7.2)
    • Compile the python pure version of mercurial:
      • C:\Python26\python.exe --pure build_py -c -d . build_ext -i build_mo --force
      • C:\Python26\python.exe --pure install --force
    • Switch the path within the SCM-Manager to Python-Binary and to Mercurial Script (f.e.: C:\Python26\python.exe und C:\Python26\Scripts\hg.bat )

    More details concerning this problem:

    I will look for an easier solution.

  2. David M. Carr reporter

    Before I came across the SCM-Manager project, I had been looking into possibly writing my own similar app, probably initially only supporting Mercurial, and went through many of those documentation pages trying to get hgwebdir working. I was first trying to get it to work within IIS and failed, but later tried Tomcat's CGI support and was able to eventually get it to work. I think it was even working with just the pre-packaged Windows binaries of Python and Mercurial, not from source. I'll need to look back to see if I'm correct and can reproduce the install steps.

  3. David M. Carr reporter

    Turns out I was mistaken. As you say, hgweb on Windows appears to be pretty tricky. I'm pretty sure that there has to be an easier way, but I haven't found it yet.

  4. David M. Carr reporter

    I've done some more experimentation, and my experience seems to match what you posted; lots of issues with binary modules when using the pre-compiled mercurial distribution, but success using the source with --pure, same versions as you listed.

    With this approach, the steps seem relatively simple and reproducible... there's just a few too many of them for general usage. Maybe I'll try putting together an installer using IzPack that: -Installs Python 2.6.6 (bundled in the installer) -Runs the Mercurial pure source install (bundled in the installer, probably as a ZIP file) -Optionally adds python and/or the hg to the PATH

    Such an installer would provide a one-step install for a Windows setup compatible with running hgweb. Depending on the performance of the "pure" hg, it might make sense to include the Mercurial binary distribution in the bundle as well for better performance.

  5. Sebastian Sebastian repo owner

    Ive done some more tests and at the end it works with the TortoiseHg 1.1.7 and Python 2.6.6. Mercurial uses .pyo files and Python seems to load those files only when it was started with -O. In the next days i will extend the SCM-Manager.

  6. David M. Carr reporter

    Tested your hg installer changes on Windows. Looks like a great approach. I tested with Python 2.6.6 and TortoiseHg 1.1.7 on Windows XP Pro. I then uninstalled everything, and tried again with Python 2.6.6 and a "pure" install of Mercurial from source. I added a minor patch to support that configuration as well. I then uninstalled everything, and tried again with Python 2.6.6 and the "Mercurial 1.7.2 Python 2.6 package" binary. This configuration also seemed to work.

  7. Log in to comment