I'm writing a wiki application which needs searchable version conrol. What's the best data model for this?
I'm writing it in Django, not that that matters much.
I'm writing a wiki application which needs searchable version conrol. What's the best data model for this?
I'm writing it in Django, not that that matters much.
Basically, what you're asking is "how can I implement version control." There are several models for this but the first question to ask is "why are you building a wiki instead of using one of the zillions of existing implementations?"
If you're looking for a wiki with source code version control written in python I'd highly recommend trac,
I'm not sure if they use django, though.
If you're looking instead for a wiki with a built in Document Management System, I have designed and built one (in bash) for my office. As Charlie mentions there is any number of ways to implement this and your implementation probably depends most on how your office operates. If you'd like a lengthy description of how our system works I'd be glad to detail it - just leave a comment and I'll edit this post.
Let me suggest you not implement version control, but make use of one of the existing implementations. Version control is a lot of work to implement well, and a lot of bother to the user if not implemented well.
See, for example, how ikiwiki does it: it has plugins to abstract away the version control system and supports several, so the user may choose.