[ANN] Documentation Website

goran.hultgren at bluefish.se goran.hultgren at bluefish.se
Tue Feb 5 16:49:09 UTC 2002


Howdy!

G.J.Tielemans at dinkel.utwente.nl wrote:
> Do you have documentation about maintaing sets of code by versioncontrol?

Well, I am no expert in general. But I do know how CVS works. For CVS
there are lots of links on the net, for example - here is a
linkcollection I did a while ago:

http://bbm2.bluefish.se:8080/sqcvs.7

> I am wondering if I can use it for collaborative work on the design of a big
> course in the form of an educational XML-tree.
> - it must be controled by a prescriptive educational markup format (Dutch
> EML/XML)
> - it can describe content
> - it can handle workflows (roles, tracking and views
> 
> - it must allow versioning
> - it must allow merging of subsets in EML-format
> 
> A refreshing explanation what CVS NOT is would also be OK.

Well, CVS is a file repository that store files "incrementally" and
keeps track of the different versions of the files. It handles whatever
files you throw at it - textual or binary. Binary is of course not as
useful.

When working with CVS you normally adopt an "optimistic" approach
meaning that you copy out everything (checkout) as a local working copy
to your machine. You then do what you like with the files. Then you
synchronize (update) and CVS will try to "merge in" all the changes that
the others have made into your local copy. There may be conflicts that
you need to fix. It uses a
"conflict-if-edited-lines-too-close-to-eachother"-approach which
actually works surprisingly well - most changes probably gets
automerged.

Then after the merge is finished (conflicts resolved) you commit your
changes to the repository.

The automerge of textfiles in combination with the optimistic approach
makes it a very nice "working model". It tends to be "cheap" to stay
updated on the edge which minimizes conflicts etc.

Then CVS has branches and tags to make it much more interesting. CVS
suffers from a few things, most notably that directories are not
versioned and that "renames" and "moves" are hard to do.

CVS CAN be used as a general backend for documents and sqcvs (SqueakCVS)
is an almost complete implementation of the protocol which means that
you could build tools/systems in Squeak that uses CVS as a "database"
for the documents.

But if you want to build a new groundbreaking collaboratory environment
it might be a hard fit perhaps. CVS concepts might be hard to "hide" I
think.

I am not sure if this helped, regards, Göran



More information about the Squeak-dev mailing list