Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


To do
  • Extract Trac Postrgres connection details to configuration
  • Extract Phabricator MySQL connection details to configuration
  • Extract GHC project PHID to configuration
  • Extract Phabricator API details to configuration
  • Copy comment history across to Phabricator
  • Update the comment transaction
  • Worry about why sorting by creation date doesn't work properly
  • Implement tags == projects and see what that looks like
  • Modify the parser to convert trac links to phab links
  • Fix inefficient comment/ticket pairing
  • Implement other events (cc, assignment, etc)
  • Copy custom field data across to Phabricator
  • Copy attachments across to Phabricator
  • Alert when target user does not exist
  • Merge together the closely related "resolution" and "status"
  • Add all edge information in by mastertickets table
  • Also link with differentials. I haven't been able to inspect the tables to see what the right format is to inject it into the DB.
  • Decide whether to have a special closed status as default
  • Early tickets are closed without a resolution
  • Skip over the "nobody" user
  • Dates are wrong on the projects board (Think this is to do with caching)
  • The subscribers field gets updated when people @ usernames in comments but then unset if the subscribers is modified later.
  • Turn off email sending for the transition with "setDisableEmail" by modifying the used API end points.


  • Ticket 365 block quotes and links in comment 7
  • Ticket 9226 wikilinks

Currently all configuration is hard coded, so you'll need to change those parts - see the to do list for the list of things that would need to be changed.

The custom field and status definitions for Maniphest must be uploaded to Phabricator before importing. To do this, copy the contents of each file in maniphest-config/ to the configuration of the same name in the Phabricator settings.

You also need my branch of phabricator and to install the custom API method.

Migrating Users

There are some users who have trac accounts who do not have phabricator accounts. It is possible to create accounts for these users using the accountadmin utility with empty passwords so that if one of these users wishes to modify their tickets after the migration they can recover their account using the registered email address and act as normal.