Skip to content
This repository

Synchronizes wiki between two Trac projects

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 art
Octocat-spinner-32 wikisync
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 setup.py
README.md

TracWikiSync

This Trac plugin allows you to synchronize wiki pages between to separate Trac installations.

A common use case is to install a local Trac project on your workstation and synchronize the wiki pages with your remote Trac server. This allows you to bring the wiki content offline, or edit the content locally before batch updating to the remote server (useful when working over slow Internet/VPN connections).

Features

  • Supports various type of synchronization states:

    • MODIFED: Local page has been modified and will be updated to the remote server

    • NEW: Local page is new and will be updated to the remote server

    • OUTDATED: Remote page has been modified and will be copied from the remote server

    • MISSING: Remote page exists and will be copied from the remote server

    • CONFLICT: Both local and remote pages have been modified, you can choose to either update to or copy from the remote server

    • SYNCED: Both local and remote pages are identitical

    • IGNORED: Skip these pages during synchronization

  • Uses standard GET and POST methods for synchronization, no other Trac plugins required

  • Supports BASIC/DIGEST authentication

  • Supports batch synchronization

TODO

  • Implement attachment synchronization

Installation and Requirements

Minimum requirements:

  • Trac 0.12 >=

  • Python 2.6 >=

Instructions:

  1. Install Trac and the latest TracWikiSync (highly recommend using virtualenvwrapper)

    $ pip install trac
    ...
    $ pip install TracWikiSync-xxx.zip
    
  2. Create a new Trac environment

    $ trac-admin /path/to/myproject initenv
    $ trac-admin /path/to/myproject permission add admin TRAC_ADMIN
    $ htdigest -c /path/to/myproject/.htpasswd myproject admin
    ...
    
  3. Enable the plugin by adding the following lines in myproject/conf/trac.ini

    [components]
    wikisync.* = enabled
    
  4. Upgrade the Trac environment

    $ trac-admin /path/to/myproject upgrade
    ...
    
  5. Start Trac

    $ tracd --port=8080 \
    --auth=*,/path/to/myproject/.htpasswd,myproject \
    /path/to/myproject
    

User Permissions

Trac users require the following permissions:

  • TRAC_ADMIN: To configure the remote server information in the admin panels

  • WIKI_ADMIN: To perform synchronization

Bugs

Please use Issues

License

See LICENSE

Version History

  • v0.1: Initial release.
  • v0.2:
    • Bugfix: UNKNOWN status is now correctly detected as NEW for new wiki
    • Bugfix: Fixed NoneType pointer error when new wiki is created
  • v0.3:
    • Added LICENSE (better late than never)
    • Bugfix: Fixed edge case where local/remote wiki is deleted and re-added, causing the synced version to be higher than actual version. Such cases will be marked as conflict.
    • Bugfix: Fixed bug where empty remote wiki page throws Invalid local_version exception.
Something went wrong with that request. Please try again.