Actually, the revision table allows for non-linear development (it stores from which version you edited the article). You could even make to "win" a version different than the one with the latest timestamp (by changing page_rev) one. You will need to change the way of viewing history, however, and add a system to keep track of "heads" and "merges". There may be some assumtions accross the codebase about the latest revision being the active one, too.
Cool! That's a nice solution because it's transparent to the end-user's system. However, if we use the current schema as you're describing, we would have to reconcile rev_id conflicts during the merge. This seems like a nasty problem if the merge is asynchronous, for example a batched changeset sent in email. -adam
This is all a fantastic idea. Distributing Wikipedia in a fashion similar to git will make it a lot easier to use in areas where Internet connections are not so common.
I wonder could this sort of feature be implemented in the existing Kiwix codebase? That would be ideal I think.
Thank you, Derric Atzrott