Others may describe this better than me, but essentially CVS is accustomed to individual text (= code) files organized into directories. Although it supports binary files, it just basically stores them as-is and doesn't try to reconcile.

This is what I would suggest:

1) Write an exporter for MetaCard stacks which imports/exports individual scripts into folders, i.e.

stack/
        stackscript.mt
        card/
                mycardscript.mt
                object/
                        myobjectscript.mt

CVS lets you operate (i.e. checkin, checkout, update, add, remove) on a file-by-file or folder-by-folder basis, so this would buy the layout it wants.

2) Extend it to export textual representations for each object.
stack/
        stackscript.mt
        stack.props
        mycard/
                mycardscript.mt
                mycard.props
                object/
                        myobjectscript.mt

3) Write a Rev GUI on top of the import/export which allows you to:
        a) Create a new CVS repository
        b) Do an initial checkout of the contents of a repository
        c) Update your stack from the contents of the repository
        d) Check-in your edited and/or new objects to the repository

Those really are the basics. CVS isn't all that complicated. It mostly makes you go through the process- keep a central repository, checkout components to work on, check them in when they work (so you don't screw other people up with your changes).

To the Rev user, it would mean that they could open up Rev, connect to a shared repository, check out say, the stack script, work on it, and then commit their changes. Some other developer could be working at the same time on, say, some button's script. Another might be tweaking the locations of objects and adding graphics. When they are all done, they check-in. Next time they update from the repository, they see everyone else's changes _if_ they've been checked in. One person could check out a bunch of button scripts while another checked out their properties. Etc.

Conflicts in CVS aren't as magical as we would like, but it will at least alert you when you step on someone else's toes, and even try to resolve the conflicts on a line-by-line basis for your non-binary files.

All in all, it would be more grunt work than anything. CVS command-line tools are available on all major platforms (and some minor ones), so it could all be manipulated via shell().

- Brian

Rev objects can be atomized down to individual properties and scripts, and
reassembled again in nearly infinite variety.


What specifically is needed, and what are the challenges of building it?

_______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to