mantisbt:importexport
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
mantisbt:importexport [2008/04/10 04:04] – giallu | mantisbt:importexport [2024/03/26 05:03] (current) – [Other] formatting xmllint code block dregad | ||
---|---|---|---|
Line 2: | Line 2: | ||
* **Author**: Gianluca Sforna (giallu) | * **Author**: Gianluca Sforna (giallu) | ||
- | * **Status**: < | + | * **Status**: < |
* **Associated Issue**: http:// | * **Associated Issue**: http:// | ||
Line 9: | Line 9: | ||
A complete solution for copying a list of issues between two different Mantis instances is something asked from quite some time: | A complete solution for copying a list of issues between two different Mantis instances is something asked from quite some time: | ||
- | http:// | + | * http:// |
- | http:// | + | |
For a greater flexibility, | For a greater flexibility, | ||
Line 28: | Line 28: | ||
Given the extensible nature of the XML format, this feature can be enhanced later to support notes, attachments and all other informations related to the issue. | Given the extensible nature of the XML format, this feature can be enhanced later to support notes, attachments and all other informations related to the issue. | ||
+ | |||
===== Design choices and issues ===== | ===== Design choices and issues ===== | ||
- | The main hurdle for this feature is to define the behavior | + | The main hurdle for this feature is to define the behaviour |
This includes: | This includes: | ||
Line 43: | Line 44: | ||
** Proposed solution ** | ** Proposed solution ** | ||
- | import will happen on a single project in instance B, so warn the user on export if "All project" | + | import will happen on a single project in instance B |
+ | |||
+ | ** Status ** | ||
+ | |||
+ | DONE | ||
=== User IDs === | === User IDs === | ||
Line 55: | Line 61: | ||
On import page, ask what to do with users. Options are: | On import page, ask what to do with users. Options are: | ||
* squash all ids to a single one in instance B | * squash all ids to a single one in instance B | ||
- | * attempt to find a matching user by username, then fallback | + | * attempt to find a matching user by username, then fall back to squashing id |
+ | |||
+ | ** Status ** | ||
+ | |||
+ | DONE | ||
+ | A function implementing the above behaviour exists, but composing a list of users is memory intensive (more than 32Mb to execute with the mantis DB) so I'm refraining from using it. | ||
+ | |||
+ | The current implementation tries by default to match usernames, then squash to the userID performing the import operation | ||
Line 71: | Line 84: | ||
* Replace them with fake links, pretending the linked bug or note was deleted | * Replace them with fake links, pretending the linked bug or note was deleted | ||
+ | ** Status ** | ||
+ | |||
+ | DONE (notes are not in the initial implementation, | ||
+ | |||
+ | |||
+ | |||
+ | === Categories === | ||
+ | ** Issue ** | ||
+ | |||
+ | Category is a required field, but nothing guarantees the target project on instance B will use the same ones as instance A. | ||
+ | |||
+ | ** Proposed solution ** | ||
+ | |||
+ | Add import options: | ||
+ | * skip import of issues with unknown categories | ||
+ | * create missing categories (dangerous...) | ||
+ | |||
+ | ** Status ** | ||
+ | |||
+ | PENDING | ||
Line 121: | Line 154: | ||
===== Requirements ===== | ===== Requirements ===== | ||
+ | |||
The code being developed depends on: | The code being developed depends on: | ||
Line 130: | Line 164: | ||
===== Other ===== | ===== Other ===== | ||
- | * The resulting xml file can be tested for validity with xmllint like: | + | * The resulting xml file can be tested for validity with xmllint like: < |
- | + | xmllint --noout --dtdvalid mantis.dtd | |
- | '' | + | </ |
* Check memory consumption when a huge number of issues are exported and imported | * Check memory consumption when a huge number of issues are exported and imported | ||
+ | * Add checks for required extensions - bool extension_loaded | ||
+ | * let user choose destination project on instance B | ||
mantisbt/importexport.1207814647.txt.gz · Last modified: 2008/10/29 04:31 (external edit)