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

Reply via email to