Higher Order CVS survival guide

HOC is based on meta-cvs with some new features hacked into it.

Most of time HOC is compatible with CVS and even more with meta-cvs.

- the most glaring difference is that CVS creates a CVS dir in every
folder, HOC creates only one HOC dir under the root of the module in
your cvswork

- you don't need to be concerned about contents of the HOC dir,
suffice it to say that it contains the files of the module under
cryptic names such as 'F-*' and defines a mapping in the MAP file to
real file names

- there can also be a HOC-EXT dir in the root of the module from where
extension to HOC are loaded. COMA uses extensions to listen for
version changes. No need to worry about it.

- hoc supports recursive add and remove for directories:

  hoc add -R dir
  hoc rm -R dir

- hoc supports execute permissions:

  hoc prop --set exec filename
  hoc prop --clear exec filename

- hoc supports symbolic links with the hoc ln command

- hoc supports 'managed' branches that keep track of (repeated)
merges. To create a managed branch:

  hoc [branch | br] <branch-name>

To merge a branch into the current checked out version:

  hoc merge <branch-name>

To switch to another branch (instead of hoc up -r <branch-name>):

  hoc [switch | sw] <branch-name>

- to list all managed branches and the current stikcy tag:

  hoc list-branches (hoc lb)

- to move to the end of the current branch (like "cvs up -A" except it
does not switch to MAIN):

  hoc [forward | fw]

- where am i? To print the name of the module:

  hoc module

To print the canonical module version:

  hoc where

- hoc co/ci/up is basically the same

- to create a new module:

  hoc create <module-name> <init-tag>

  where <init-tag> is just a tag name.

- use "hoc fi" as a filter to translate cryptic 'F-*' filenames to
real ones:

  hoc up | hoc fi

  or

  echo F-A1765765B76786 | hoc fi

- installation:

  install clisp >= 2.27
    - in mandrake and debian it is included in the distrib
    - on older redhats (<= 7.2) you may have to compile it
    - on newer redhats the rpm found by INI seems to work

  cvs co ho-cvs
  cd ho-cvs
  ./installer.sh /usr/local

- hoc help prints a short summary

- hoc help <command> prints a long description for some of the commands

- conventions

  - Use lowercase alphanumeric characters separated by hypens (-) as
  module names, do not use uppercase letters, underscores.



Of course, there is more to ho-cvs.
