On Sun, 2002-04-14 at 14:49, Geoffrey Talvola wrote: > I'd like the ability to store versions in a source-control system like CVS or > Perforce. So there ought to be some abstraction layer around the actual > storage of versions, perhaps with a simple filesystem-based storage provided > by default, but which makes it easy to plug in CVS, Perforce, or whatever.
What kind of integration would you expect? Simply storage? Things like change merging seem difficult, particularly in terms of interface. Right now you could override lib.Page.createVersion and lib.PageVersion.text/summary to change the backend storage. Better that storage-specific code should be taken out of Page, which is trivial, then only PageVersion would have to be modified. Lastly you'd have to create a mapping (in PageVersion) from the CVS/Perforce version numbers to the serial integers the Wiki is using for the version. If people were to edit the repositories independent of the Wiki, that would be significantly more complex. You'd have to change most all of PageVersion, but I don't think there'd be much outside of that class. I have no idea how easy or complex actually doing the storage in CVS is, but the code is structured so it should be easy enough to add on once you have it. It would have to be modified code right now, not a plugin, but making an abstraction layer doesn't make sense until there's actually more than one thing to abstract :) Ian _______________________________________________ Webware-discuss mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-discuss
