Excerpts from Adam Wight's message of Mon Jul 16 18:22:22 -0400 2012:
Hello comrades,
I've run into a challenge too interesting to keep to myself ;) My
immediate goal is to prototype an "offline" wikipedia, similar to Kiwix,
which allows the end-user to make edits and synchronize them back to a
central repository like enwiki.
The catch is, how to insert these changes without edit conflicts? With
linear revision numbering, I can't imagine a natural representation of
the data, only some kind of ad-hoc sandbox solution.
Extending the article revision numbering to represent a branching
history would be the natural way to handle optimistic replication.
Non-linear revisioning might also facilitate simpler models for page
protection, and would allow the formation of multiple, independent
consensuses.
There is a tool for managing non-linear history in mediawiki data sets.
It's actually a combination of git, the version control system, and
the MediaWiki API. It's called git-remote-mediawiki.
First, I'll quote its documentation:
<quote>
Getting started with Git-Mediawiki
Then, the first operation you should do is cloning the remote mediawiki. To do so, run the
command
git clone
mediawiki::http://yourwikiadress.com
You can commit your changes locally as usual with the command
git commit
</quote>
You can read more here:
https://github.com/Bibzball/Git-Mediawiki/wiki/User-manual
I've been enjoying it lately, though it has some rough edges. It is under
periodic development, and in the near future I plan to make more of a user
community around it.
It is probably entirely unwiedly to use on English Wikipedia directly, but it
could be adjusted to permit the importing of database dumps, and then let people
branch off those.
-- Asheesh.