19

My team and I have found that documenting our project (a development platform w/ API) with a wiki is both useful to us and useful to the users. Due to some organizational issues, we're forced to do multi-site development without network connectivity. We've switched to a DVCS (Mercurial) and had great success with this. The wiki documentation proves to be a problem as the central site is setup with MediaWiki. The offsite people have no way to access or edit the wiki.

Is there any sort of wiki-style package which doesn't not require a server/database and will be useable in a DVCS environment?

Update: Should be open-source and cross-platform

Cœur
  • 37,241
  • 25
  • 195
  • 267
basszero
  • 29,624
  • 9
  • 57
  • 79

10 Answers10

8

I can recommend TiddlyWiki. It does not need any web servers, only a browser, stores the entire Wiki documentation in a single HTML page. This can easily be shared through Mercurial.

Edit: Check this page, it discusses how to use TiddlyWiki with DVCS. It involves using an extension dubbed SynchroTiddly.

David Hanak
  • 10,754
  • 3
  • 31
  • 39
  • 1
    TiddlyWiki rocks, but it cannot be used with version control due to the way it changes/ reorders the content. I tried it. – newgre Feb 09 '09 at 14:47
  • Not bad, might be confusing compared to more standard multi-page style wikis and if it can't be used w/ version control... – basszero Feb 09 '09 at 14:48
  • "Can't be used w/ VC" is a bit strong. Perhaps changes from one version to another are bigger than necessary, but it surely *can* be used with VC. – David Hanak Feb 09 '09 at 15:04
  • I grant you, that merging could be an issue, though. – David Hanak Feb 09 '09 at 15:05
4

http://zim-wiki.org/
It's a desktop wiki (WYSIWYG editing, though not very sophisticated formatting) which stores everything in plain-text files. That means you can hold the files in version control, and have a friendly editing experience.

It even has builtin Bazaar support UPDATE: also Git, Mercurial, and Fossil.

[I know, late to the party - writing for benefit of others reading this question...]

Beni Cherniavsky-Paskin
  • 9,483
  • 2
  • 50
  • 58
4

DokuWiki stores all data in plain text files. You could install local web servers for every developer and use your VC system to sync between developers.

Joonas Pulakka
  • 36,252
  • 29
  • 106
  • 169
  • May be tricky to get this all setup, I'll have to see what the Doku data directory looks like. Maybe we can have one server per site and have a master at each site do the merges/pushes – basszero Feb 09 '09 at 14:50
  • Probaby be hard to ship this to a customer who will certainly not have a webserver w/ DokuWiki. Hopefully there is a plugin to dump static content – basszero Feb 09 '09 at 14:54
4

ikiwiki: http://ikiwiki.info/ stores the info directly in the VCS (it supports mercurial as backend).

bialix
  • 20,053
  • 8
  • 46
  • 63
2

Ended up writing my own system using python,cherrpy, and mercurial. Perhaps one day it will end up open-source. Thanks for all the suggestions.

basszero
  • 29,624
  • 9
  • 57
  • 79
2

http://hatta-wiki.org/ is a wiki running on a Mercurial repository.

It's interesting to note how it handles conflicts: simultaneous edits are silently merged on commit, even if conflicting and committed with the conflict markers! That's OK because:

  • it's text, not software
  • you see the result of your edit immediately after commiting
  • it treats conflict markers as valid wiki syntax (resulting in diff -u like highlighting of the conflict)!

This arrangement motivates you to edit again to resolve the conflict immediately - but doesn't force you to.

Beni Cherniavsky-Paskin
  • 9,483
  • 2
  • 50
  • 58
  • This is VERY close to what I wrote myself. Way more feature complete, but the same idea. Sadly I did most of my development at my employer (in support of our project) and the likelyhood of open source is slim. Thanks for keep the alternatives coming! – basszero May 11 '10 at 11:20
2

Perhaps you should look at auto-generation of documentation from source. This way, the documentation will automatically be version controlled.

A lot of generators support adding additional documentation via plain-text files which can be added to the repository.

Christoph
  • 164,997
  • 36
  • 182
  • 240
  • I'd second this. Automatic generation - I use Doxygen - means you don't have to think using another program/interface/wiki to do your documentation. It's all right there, and it gets shared between your teams when your code does. – sparklewhiskers Feb 09 '09 at 15:17
  • We're Java based and we have javadoc, but sometimes the amount of documentation and detail isn't easily written in Javadoc. – basszero Feb 09 '09 at 15:18
  • @basszero: That's why I mentioned that some of these tools allow for easily adding custom docs via plain-text files... – Christoph Feb 09 '09 at 15:21
2

Look into Fossil it is a DVCS that contains a built in wiki and bug tracking system. This may be just what your looking for. Read the site, there is a built in webserver. You can use a CGI script to open up the connection to people (the fossil website is the fossil DVCS). After using it you may decide to move your code over to it as well. It is open source, and does have cross platform builds.

javelinBCD
  • 1,911
  • 3
  • 15
  • 22
2

Github's gollum is open-source, git based, eats many popular syntaxes. But the most important selling point of course is that it's built into github.

Bitbucket similarly has a mercurial based wiki. Not sure if the code is open source though (i.e. you can edit the text offline, but not sure that you can see it rendered).

Beni Cherniavsky-Paskin
  • 9,483
  • 2
  • 50
  • 58
0

MoinMoin supports storing your pages in a Mercurial repository: http://moinmo.in/Storage2009/HelpOnStorageConfiguration#Mercurial_Backend_.28hg.29

This is quite interesting because MoinMoin has been around for a while, is rather well supported, and a rich set of features (but that's just my opinion; don't take my word for it and see for yourself ;-)).

jpetazzo
  • 14,874
  • 3
  • 43
  • 45
  • Only MoinMoin 2 supports DVCS storage, and that hasn't seen so much as a release candidate yet. Looking forward to it, though. – Ant Oct 25 '11 at 09:23
  • 1
    I ended up using Hatta, and found it super awesome. It seems to have much less features that MoinMoin, but the few things it does, it seems to do very well. It's also super easy to do mash-ups. E.g. each time you save a page (which would be actually some source code), recompile the project. I did a Hatta+Sphinx mash-up that way, so we can have all our doc in RST format, generate nice HTML output, but still edit it with either a wiki or through pull/edit/push cycle. – jpetazzo Oct 26 '11 at 03:03