Versioning (was Re: [unrev-II] Jack's Use Case)

From: Paul Fernhout (pdfernhout@kurtz-fernhout.com)
Date: Fri Oct 27 2000 - 05:04:53 PDT

  • Next message: Paul Fernhout: "Re: [unrev-II] Re: Roll your own browser"

    Eric Armstrong wrote:
    > [Note: If I can *just* get the rest of the versioning process worked
    > out, I'll have an announcement soon.]

    For versioning, from the class comment of PointrelTreeArchiver in Squeak
    (this took quite a bit of time/thought to work out, and if I did it over
    again I might make some minor changes):

    =============================================

    maintains multiple versions of things.

    This is the recursive structure maintained.
    There is one top level named node called "tree archive root".
    This node points to other nodes which contain versions of archive
    information.
    Any user of this archive to load a sensible subset of the archive
    then will have one "node version" of "tree archive root" (ot lower in
    the tree).
    This node version will point to other specific node versions
    which defines a subset of the archive.

    In this definition, except for the first node, each line starts with the
    name of a property of the object type above it.
    The first node
    Three dots such as '...' denotes that the previous property line above
    it can be repeated multiple times.
    'had property -> type' denotes the expected type of the property.
    The subsequent indented lines define the properties of this type if it
    is new.
    Things in double quotes are comments.

        named node
            has name -> string
            has node version list -> node version list
                has node version -> node version
                    has version tag -> string
                    has current contents version -> contents version
                    "the following node version should be from a subnode's
    version list"
                    has current subnode version -> node version
                    ...
                ...
            has contents version list -> contents version list
                has contents version -> contents version
                    has contents -> string
                    has version tag -> string
                ...
            has subnode list -> subnode list
                has named node -> named node
                ...
            "The following field is only appropriate if there is only one
    shared current state by all archive users"
            has loaded version -> node version

    Or, decomposed into pseudo-objects:

        node version list
            has node version -> node version
            ...

        node version
            has version tag -> string
            has current contents version -> contents version
            "the following node version should be from a subnode's version
    list"
            has current subnode version -> node version
            ...

        contents version list
            has contents version -> contents version
            ...

        contents version
            has contents -> string
            has version tag -> string

        subnode list
            has named node -> named node
            ...

        named node
            has name -> string
            has node version list -> node version list
            has contents version list -> contents version list
            has subnode list -> subnode list
            "The following field is only appropriate if there is only one
    shared current state by all archive users"
            has loaded version -> node version

    ==========================================
    (Pursuant to the terms of the X/MIT type license)

    This produces a general system for having multiple versions of
    hierarchical content. ENVY for Smalltalk (VisualWorks, VisualAge)
    produces a similar effect but is less general.

    -Paul Fernhout
    Kurtz-Fernhout Software
    =========================================================
    Developers of custom software and educational simulations
    Creators of the Garden with Insight(TM) garden simulator
    http://www.kurtz-fernhout.com

    -------------------------- eGroups Sponsor -------------------------~-~>
    eLerts
    It's Easy. It's Fun. Best of All, it's Free!
    http://click.egroups.com/1/9699/5/_/444287/_/972648217/
    ---------------------------------------------------------------------_->

    Community email addresses:
      Post message: unrev-II@onelist.com
      Subscribe: unrev-II-subscribe@onelist.com
      Unsubscribe: unrev-II-unsubscribe@onelist.com
      List owner: unrev-II-owner@onelist.com

    Shortcut URL to this page:
      http://www.onelist.com/community/unrev-II



    This archive was generated by hypermail 2b29 : Fri Oct 27 2000 - 05:13:40 PDT