Fetching latest commit…
Cannot retrieve the latest commit at this time
|Failed to load latest commit information.|
Roundup to Fogbugz migration ============================ Overview -------- This program will; * Import all roundup users. * Import the history for all issues, including; - Title - Messages - Priority - Status - Assigned to - Keywords - Attachments * Can optionally allow mapping of keywords to projects (in which case it will create those projects, assign the bug to the project, and remove the keyword from the tags). * Will attempt to keep the same issue numbers (so external links to bug ids remain valid). It will not; * Import passwords. * Keep the nosy list (this wasn't required for us, but it'll be easy to add). * Remove messages from issues (supported by roundup, but not by fogbugz). * Remove attachments from issues (supported by roundup, but not by fogbugz). * Import non-default classes (should be easy to customise though). Instructions ------------ Export the roundup database using roundup-admin. eg: roundup-admin export export_dir/ Then use roundup-to-fogbugz.py tool to test the conversion; ./roundup-to-fogbugz --default-project=ProjectA --map projecta:ProjectA --map projectb:ProjectB --default-user=usera ./export_dir This will not import into fogbugz, but it will scan the history of the issue tracker and check it for sanity. When this has run without error, and you'd like to import it into fogbugz, run ./roundup-to-fogbugz --default-project=ProjectA --map projecta:ProjectA --map projectb:ProjectB --default-user=usera ./export_dir http://username:password@localhost:1234/bugs/ replacing the fogbugz server with the current url. Fogbugz to Fogbugz migration ============================ Overview -------- This script will export from the Fogbugz issue tracker using the api.xml interface, and insert the issues into the new tracker in the same fashion. It will migrate the full history for; * All messages * All users (that are used) * Status changes * Parent / child relationships * Bug owner * Bug assignment * Priority * Tags * Projects It will not migrate; * Milestones * Time estimates * Email issues (it will migrate them, but they message will be text of the email message, and you won't be able to reply) Instructions ------------ Check that it can export the source issues from the source tracker by running ./fogbugz-to-fogbugz.py https://username:firstname.lastname@example.org/ Repeat the export, sending to the target tracker by running ./fogbugz-to-fogbugz.py https://username:email@example.com/ http://username:password@localserver/ If you only want to export certain issues, use the '--search' paramter. This will limit the migrated issues to those listed. If you want to map a source user to a target user, you can use the '--user "source user:destination user' parameter, which will the destination database's 'destination user' account whenever a change was made by 'source user' in the source database. In a simlar fashion, use the '--project' parameter to map between source projects and destination projects. Known bugs ---------- * If a user has been deleted, the fogbugz export will complain about fogbugz.export.ExportError: Failed to find source ixPerson with id 2! Unfortunately there is no way to query deleted users with the api.xml. * It doesn't correctly group changes; some of the historical changes may have incorrect timestamps. Tips ==== * You may have to run the import several times to correct issues (for example, if you need to increase the maximum file size in fogbugz); it is very useful to be able to quickly reset the database to a useable but mostly clean state for testing. To remove all users, bugs, etc, run; DELETE FROM Attachment; DELETE FROM BugEvent; DELETE FROM BugView; DELETE FROM BugRelation; DELETE FROM BugRelation; DELETE FROM Duplicates; DELETE FROM Scout; DELETE FROM TagAssociation; DELETE FROM Bug; DELETE FROM Project; DELETE FROM Person WHERE ixPerson != 2; The administrator account will still be present, and all the bug ids will not restart from 1, but it will be clean enough allow you to re-run the import. * To fully reset the database to a pristine state, run (for mysql); DROP DATABASE fogbugz; CREATE DATABASE fogbugz; use fogbugz; create table Version (ixVersion int); insert into Version values (0); Then load the web interface to let it re-run the installation.