I have been told that TWiki (either stable release or latest development release, I assume) doesn't have support for using CVS as a storage backend for revisions and content, despite alot of talk about the subject a couple of years ago. I'm a bit familiar in Perl, so would be willing to try and hack it into my local copy and then give it back to the dev community. However, I need some pointers like what files I need to start looking at and what issues I need to keep in mind. I don't have alot of tiem, so can't afford to learn the entire Twiki source tree. Thanks
--
AdamTheo - 23 Nov 2002
TWiki currently support
RCS and a lite Perl version called
RcsLite. Both of these are implemented as Perl objects. Module TWiki::Store passes calls through. The implementation being used is deterimined by
TWiki::storeTopicImpl, which is defined in
TWiki.cfg. I'm not sure how well CVS can be mapped to the semantics being used by TWiki. I think you'll find this take a fair amount of time. For good TWiki compatiblity I think you'll want to be able to convert to/from
RCS files as transparently as possible -
RcsLite might help you here as
RCS binaries are not required.
--
JohnTalintyre - 24 Nov 2002
OK, thanks. It looks like it's alot more complicated than I was hoping, and will probably have to be a long term goal that I work on over the next couple of months unless the core team or someone else implements this into the CVS version, in which case I'll get the CVS and crash test it.
--
AdamTheo - 30 Nov 2002
How's it going, Adam?
--
GrantBow - 25 Jan 2003
Hello, Adam! In my workplace we have much html pages stored in our CVS server. We would like to import them to twiki. I tried to do import script and discovered that it is something which you are planning to do, but your plan to integrate CVS to TWiki seamlessly is more smart, but more difficult to do too. I think that it is quite easy to do two scripts: One which import data from CVS -server to TWiki -directory and other which export data from TWiki -directory to CVS -server. These script should be called from cron, for example, at every midnight. This is "quick and dirty" way to use CVS-server as a TWiki backend. More elegant way is to run those script every time after twiki calls /usr/bin/ci and /usr/bin/co - - - function import() { echo $SOURCE rm $SOURCE* -rf h1="%META:TOPICINFO{author="guest" date="1076081480" format="1.0" version="1.1"}%" h2="%META:TOPICPARENT{name="HomePage"}%" echo $h1>SOVA/tmp.txt echo $h2>>SOVA/tmp.txt echo "">>SOVA/tmp.txt cvs checkout $SOURCE cat $SOURCE >>SOVA/tmp.txt echo "
">>SOVA/tmp.txt mv SOVA/tmp.txt $SOURCE /usr/bin/ci -q -l -m'none' -t-none -w'guest' /opt/TWiki/alpha2003-12-01-1258/twiki/data/$SOURCE chmod o+x SOVA -R } export SOURCE=SOVA/Sovellusvalikko.txt import SOURCE=SOVA/SOVA.AsiakasTiedote.txt import # TWiki doesnt accept filenames where is two dots. Therefore # first dot has to replace with underline. mv $SOURCE SOVA/SOVA_AsiakasTiedote.txt exit --
VeijoRyhanen - 10 Feb 2004