Change #5:  The "report" editor doesn't exist.
Status Quo:
   To perform an update: 
        - the client fetches a "report" editor from RA
        - the client drives the report editor, describing the state
          (revision numbers) of all objects in the working copy.
        - RA then drives the "update" editor with custom changes.
Proposed Change:
   To perform an update:
        - client describes working copy state using a new vtable with
          just two simplified functions: replace_dir() and
          replace_file() 
        - RA then drives the "update" editor with custom changes.
Rationale:
    It occurred to us that it's inappropriate to use an editor to
    report all the revision numbers in a working copy.  To do so would
    completely distort the semantics of the editor: it has *nothing*
    to do with describing a tree delta!
 
    One might argue that you *could* report working copy state as a
    tree-delta.  In this scenario, you grab the revision of the WC's
    root (say, version N), and then send a tree-delta that describes
    how to change a tree at revision N into a multi-versioned tree
    that looks like the working copy's hodgepodge of revisions.  Every
    single object in the WC that isn't at N must be reported; pretty
    inefficient.  Every call to replace_*() would have a base_revision
    of N, and some different target revision.
    Needless to say, even in this scenario, no text-deltas are being
    sent, and things are inefficient.  As Jimb says, "let's just write
    an interface that really does what we want."  :)
Received on Sat Oct 21 14:36:19 2006