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