views:

585

answers:

8

This may sound like it's not a programming related question, but stick with me here...

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

+2  A: 

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
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
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
+1  A: 

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
TiddlyWiki rocks, but it cannot be used with version control due to the way it changes/ reorders the content. I tried it.
jn_
Not bad, might be confusing compared to more standard multi-page style wikis and if it can't be used w/ version control...
basszero
"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
I grant you, that merging could be an issue, though.
David Hanak
+1  A: 

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
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
We're Java based and we have javadoc, but sometimes the amount of documentation and detail isn't easily written in Javadoc.
basszero
@basszero: That's why I mentioned that some of these tools allow for easily adding custom docs via plain-text files...
Christoph
+2  A: 

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

bialix
A: 

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  A: 

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
Have you released it as open source?
chakrit
Sadly, this was company work and I can't convince higher ups to go open source.
basszero
A: 

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 (commiting only currently).

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

Beni Cherniavsky-Paskin
A: 

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
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