ImpressCMS Trac migration to Sourceforge

After getting increasingly dissatisfied with the service from Codesion, ImpressCMS decided to switch to another provider. We had few requirements, and so we started searching for a solution based upon those:

  • free or affordable for our budgets
  • Subversion
  • Trac

We also thought of the possibility of doing the hosting ourselves, but that would mean an investment of time and effort, which would be unavailable for other tasks. Overall, we thought it was best to let specialized service providers handle that kind of non-core activity.


In the end, only was a fit for our requirements. There are many free or almost free hosting providers of Subversion repositories, but only very few of those also provide Trac.

It’s quite funny that we chose Sourceforge for our hosting actually. We initially started on the platform, but went to Codesion (still called CVSDude at the time) because the Sourceforge platform wasn’t offering what we needed at that time. The download service was kept however.

In the past few years, Sourceforge has dramatically changed the platform and the services it provides, and it has become much closer to what we require from a hosting provider. We did some testing, and decided that the Sourceforge offering was a perfect match. The only difficult part proved to be the migration of the data.

Migrating Subversion

Marcan has a nice walkthrough of his fast and painless migration of the Subversion repositories. He combined the core and the addons repository into one. This was partly to minimise the maintenance effort, but also because a Trac installation can only be tied to one Subversion repository.

For example: a defect that was initially thought to be a module problem can sometimes become a core problem after some investigation. With a single repository, it’s as easy as assigning another module in Trac. When working with two separate instances, the process becomes less easy to follow, as you need to copy the content of the ticket from one Trac instance to another, and link both defects manually. Trac only links to defects in the same repository.

Migrating Trac

Migrating Trac data proved to be mainly a manual labor. I received a dump of the entire Trac folder from Codesion, containing the source files and the SQLite database files. That gave me all the data needed to set up a new trac instance. Trac doesn’t have any export/import functionality as of yet, which is a shame. That meant I needed to import the table data from the Codesion database into the Sourceforge data tables.

On their end, Sourceforge was unwilling to import the data dump of our previous Trac install. It is true that Trac has made the peculiar decision to identify the users by their username, a text field. I would have expected the key to be an ID number, linked to the user, but that isn’t the case. This means that the usernames must be exactly the same, and that was one of the major reasons Sourceforge support couldn’t just import the Codesion data.

In the end, I just created a Google Docs spreadsheet with the important information, and did a few Copy-past sessions together with Underdogg.


More info about the Subversion migration : Migrating the ImpressCMS Trac to Sourceforge

More info about the trac migration : Importing ImpressCMS SVN repository on SourceForge

Leave a Reply