Edgewall Software

Move, Copy and/or Synchronize Parts or all of Trac Instance

There are some use cases where moving, copying, synchronizing Trac instances (or part of Trac instances) might be beneficial:

  • single persons working disconnected:
    • they would need to get the latest information they have access right to onto a laptop.
    • when reconnecting to the network they need to merge their changes into the central Trac instance
  • InterTrac:
    • information is entered into the wrong instance and should be moved to another one.
    • information should be moved to a newly created trac instance

Related tickets are: #1465

Some solution ideas grabbed from the mailing list and the tickets

  • use import/export with csv
  • use (implement) versioning backenends as trac storage backend
  • use (implement) synchronisation based on the xml-rpc based on timeline information

N.B. Here is a PostgreSQL compatible version of the csv2trac.py script. I couldn't add it to this page, as it was rejected as Spam. Anyone with sufficient privileges should feel free to add it here and remove the above link to my site. Tom Lazar.

Challenges which may come up

  • stable ticket numbering must be guaranteed (either provide prefixes or numbering ranges for the instance which created it or invent something else)
  • in the intertrac configuration, there might be links on a moved object. these links would have to be changed. is there any "backlink" or "where did it get used" in trac to find this information?
  • different trac instances might have different ticket fields and field contents, i.e. administrative settings. but EmailtoTracScript also has this problem, and it anyway works.

Note for 0.11

You need to remove the url column, see #6590 (which has a patch).

Wiki synchronization

Consider https://github.com/ivanchoo/TracWikiSync for wiki synchronization only.

Last modified 7 years ago Last modified on Mar 16, 2012, 8:51:43 AM

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.