We’ve been running on an old Subversion/Bugzilla server and the hardware needed to be retired. In the course of migrating it made sense to upgrade the software and take advantage of some new features in both products. I first installed MySQL for Bugzilla, imported the database, and installed Bugzilla. After much fiddling to get the old template we had working with the new version of Bugzilla it was tested and was working fine. Then I installed Subversion Edge. I imported the repositories. It was tested and was working fine. There was much rejoicing. As a final test before prepping the server for production I ran through the process we would use to import the current live data onto this new server. This is where things started to go awry.
Subversion is incredibly simple. I simply needed to delete the old repositories and use the admin page to discover repositories which would clear the list of existing repositories. Then I’d copy in the live repositories and discover again. Tested, it works, great.
Bugzilla should have been equally as easy. Drop the old database. Import the live database, and run the script to perform the DB update. We never got that far. I couldn’t get MySQL Workbench to give me a query window. I was getting the following error:
Cannot Connect to Database Server. Cannot start SSH tunnel manager
Some Googling told me this was a Python issue, and after much digging I noticed that PYTHONHOME was now pointing to the Python distribution shipped with Subversion Edge. When I pointed PYTHONHOME at the Python folder shipped with MySQL Workbench, it worked swimmingly. Here is what was wrong.
Subversion Edge points at [svn edge install dir]Python25 . MySQL Workbench points at [MSQLWB install dir]python . These should be compatible, since they are both Python 2.5, right? Wrong. The contents of the Subversion Edge Python distribution is pretty close to the contents of the standard Python distribution. The contents of the MySQL Workbench python folder is the Lib dir of the Python distribution. If I change PYTHONHOME to svn edge install dir]Python25Lib then MySQL is happy as a clam, but obviously Subversion will no longer work. Unfortunately, currently, they cannot coexist on the same system.
If we go the other way and set PYTHONHOME so MySQL works, then the repository viewer called ViewVC will no longer work. You will get an HTTP 500, Internal Server Error.