
                       Excellent Testing Payoff


Robert Anderson wrote a little test right for changesets.
It starts with a near empty tree, performs randomly selected 
edits to deriver a new tree, computes a changeset between the two, and
makes sure the changeset applies cleanly.    This is _long_ overdue.

This release of arch is the first (so far as I know) to have the
properties that `larch mkpatch' and `larch dopatch' sail through long
runs of that test suite.   In other words, in the _core_ functionality
that really matters the most to data integrity, this is the Best
Release Ever of larch.   (The changeset tools in the emerging C
version also pass these tests.)

There's also been further progress on the C version.   There's only
about 12 commands to finish, plus some odds and ends to clean-up: and
then we'll have a (much, much faster) version of arch in C.

On the financial front: generous, individual contributions in the $10
... $300 (USD) range have trickled in since the last release.  Not
nearly enough to get me out the deep, deep pile of financial trouble
in in -- but enough cash on hand to buy me a few days at a time to
either win big with arch or find an unrelated day job.  I'm far from
rolling in cash, far, even, from out of serious and immediate trouble,
so further contributions are welcome.


lord@emf.et
paypal id: lord@emf.net


Here's an updated guide to commands that have been rewritten in C.

In general, for a command `larch foo', there's a new C program called
simply `foo'.   There are some exceptions to the naming rule, noted in
this list:


                             my-id : print or change your id
                my-default-archive : print or change your default archive

       do-changeset (was: dopatch) : apply a patch tree to a source tree
show-changeset (was: patch-report) : generate a report from a patch set
          changeset (was: mkpatch) : compare two source trees and create a patch tree

cachedrevs (was: archive-cached-revisions) : list full source trees cached in an archive
uncacherev (was: archive-uncache-revision) : remove a cached revision from an archive
cacherev (was: archive-cache-revision) : cache a full source tree in an archive
                   get-patch : retrieve a patch set from an archive
                   revisions : list the revisions in an archive version
             cat-archive-log : print the contents of an archive log entry
                    versions : list the versions in an archive branch
                    branches : list the branches in an archive category
                  categories : list the categories in an archive
                    archives : report registered archives and their locations
            register-archive : record the location of an archive
             whereis-archive : print the registered location of an archive
                make-archive : create a new archive directory
               make-category : create a new category within an archive
                 make-branch : create a new branch within an archive
                make-version : create a new version within an archive
                    make-log : initialize a new log file entry
           getrev (was: get) : construct a project tree for a revision
        imprev (was: import) : archive a from-scratch base revision
        cmtrev (was: commit) : archive a revision
           tagrev (was: tag) : create a continuation revision (tag or branch)
               lock-revision : acquire the lock for the next revision

                what-changed : compare project tree to cached pristine
    redo-changes (was: redo) : redo undone changes in project tree
    undo-changes (was: undo) : undo and save changes in project tree
                  file-diffs : compare file with cached pristine revision

ls-pristines (was: pristines) : list the pristine trees in a project tree
               lock-pristine : lock a pristine revision locking

                 library-add : add a revision to a revision library
                library-file : find a file in a revision library
              library-remove : remove a revision from a revision library
                 library-log : print a log message from the library
            library-archives : list the archives in the revision library
          library-categories : list categories in the revision library
            library-branches : list branches in the revision library
            library-versions : list versions in the revision library
           library-revisions : list revisions in the revision library
                library-find : find a revision in a revision library
         my-revision-library : print or set your revision library path

               record-config : record a revision-specific configuration
                 show-config : show the revision frontier of a configuration

  merges (was: merge-points) : report where two branches have been merged
               whats-missing : print patches missing from a project tree

find-in-cache (was internal) : find a revision in the local cache

          srcfind (was: inventory) : inventory a source tree
                         tree-lint : audit a source tree
                  explicit-default : set the default explicit tag for a directory
                              move : move an explicit inventory tag
                add-tag (was: add) : add an explicit inventory tag
          delete-tag (was: delete) : remove an explicit inventory tag
                    tagging-method : print or change a project tree tagging method
                          inv-tag  : (not in larch) print a file's inventory tag


                         init-tree : initialize a new project tree
                         tree-root : find and print the root of a project tree
                      tree-version : print the default version for a project tree
                  set-tree-version : set the default version for a source tree

                              logs : list patch logs in a project tree
                           add-log : add a version patch log to a project tree
                           cat-log : print the contents of a project tree log entry
                            log-ls : print version patches in a project tree
                         changelog : generate a change log from a patch log
                        remove-log : remove a version patch log from a project tree

