A tool for the synchronization of Wiki databases. A good
WikiSync program is a godsend to those who are frequently offline, such as commuters.
I commute to work. I get 45 minutes of offline usage of
LaptopJenny, twice a day. I have a cablemodem at home, and T1 at work. I'd like to do things on
LaptopJenny without the need to do a
ManualSync. Among those things is reading this Wiki, and contributing to it. At a minimum, this will require downloading all of this wiki (in a friendly way). I'd be happy to share the results once I get it all working, of course.
--
MikeWarot
Specifications:
- The WikiSync program should know when the last sync was done so there is no need to compare all the documents!
- The WikiSync program should be able to download only the texts which are modified after the last download.
- If you have created new pages and they are not in Wiki then they should be uploaded.
- If you have changed pages and they are not changed in wiki they should be updated.
- If the changes have been done in both of the copies then some kind of a "resolve changes" page should appear, so that you can merge the differences.
...
Such a thing exists, and funnily it is also called "
WikiSync". It is however bandwidth exhaustive and doesn't support the open Wiki APIs (
XmlRpcToWiki and such), it is tied to one
WikiEngine and probably only useful for a
PersonalWiki. Have a peek at
http://erfurtwiki.sf.net/tools/ and
http://readonly:[email protected]/tools/t_sync.php specifically.
I think it should be possible to use
BayleShanks WikiGateway to make a real cross-wiki compatible
WikiSync program; and I think I also heard of another Wiki providing such a feature (can't remember which). --
MarioSalzer
I think wix might do this for mediawiki:
http://search.cpan.org/~markj/WWW-Mediawiki-Client-0.16/bin/wix --
BayleShanks
Anything that implements
WebDav (plus versioning) could also simply use 'sitecopy' or similar tools.
See also
FwSync for use with Microsofts
FlexWiki.
I urge any solution to be friendly and be globally compatible. The ability to edit data locally is needed for speed and security, while the global synchronization is needed for synergy. --
KenWeide
Consider ways to use rsync. Using existing tools in novel ways is the sign of true genius.
Question - what if two off-line users edit the same page. How do you do resolution. First to sync, wins? If you've done a lot of editing off-line that could be a real bummer.
I have a version of this that I use for a wiki-like system with some colleagues. It doesn't scale, but for what it's worth, here it is.
- Each person has their own pages database, each works with their own pages database, and everyone else has a read-only copy. Each changes their own pages however they like, and regularly rsync the pages to the other machines.
- The "wiki" then presents a unified view. If one person likes what someone else has written, one click (like the OpenOffice/MicrosoftWord "Accept Changes") and it's copied to the local version of the page and the difference disappears. Pages should converge rapidly unless there's a genuine disagreement. Then a 'phone call or email can be used to sort it out.
Should work a treat with a small number of people.
--
AnonymousDonor
There already exists open source project called Wiki Synchronization Tool which solves these problems. Project homepage is on
http://wikisync.dev.java.net