Documentation: https://tuleap-documentation.readthedocs.io/en/latest/administration-guide/project-export-import.html#references
Important: This proposal only covers the ability to keep references like "artf1234", "wiki547", "cmmt888" clickable with a link to the corresponding imported resource inside Tuleap. It means that given a wiki page "FooBar" that contains in a text "artf1234", when I look at this artifact, I don't have any link from the artifact back to the wiki page.
There are 3 steps:
- Enhance the import XML format to allow definition of mapping
- Store the conversion elements at Tuleap side
- Use the mapping table to generate the links
XML import format
For each imported item (artifacts, wiki pages, git, svn, frs package) there is a <reference> section that allows to define what is the original reference and to which item it corresponds in the target system.
Artifacts:
<tracker>
<artifact id="1234">
...
<references>
<reference source="artf1234" target="1234">
-> source is the original reference, target is the id of the artifact.
Plan
<tracker>
<artifact id="6963">
...
<references>
<reference source="plan6963" target="6963">
-> source is the original reference, target is the id of the artifact.
Subversion:
<svn>
<repository ...>
...
<references>
<reference source="cmmt64324" target="1">
<reference source="cmmt64455" target="2">
</references>
-> source is the original reference, target is the subversion revision number in the repo
Git:
<git>
<repository ...>
...
<references>
<reference source="cmmt64325" target="aa1ea8443b96bc8cbd0cfde28258280f1c3e166a">
<reference source="cmmt78905" target="6710d1e62860cdad9f90636c97dd48c9da1bb8a9">
</references>
-> source is the original reference, target is the git sha1 of the commit
FRS:
<frs>
<package id="1">
...
<references>
<reference source="pkg1289" target="1">
-> source is the original reference, target is the package id (needs to be added)
Mediawiki:
<mediawiki>
<references>
<reference source="wiki76532" target="HomePage">
-> source is the original reference, target is the wiki page name
Covered:
- artfXXX (point to an artifact)
- pkgXXX (point to an FRS package)
- cmmtXXX (point to a commit svn or git)
- wikiXXX (point to a wiki page)