Discussion:
Meta-CVS Happy 10th!
Kaz Kylheku
2012-03-28 18:29:41 UTC
Permalink
On January 27, 2002, I released the first public version of Meta-CVS.

Meta-CVS:

- is thin, light-weight version control system implemented over CVS,
which stores files in a CVS repository.

- uses efficient hard links to maintain a correspondence between the
tree view of the file and the objects in the repository.

- treats the directory structure as a document, and so renaming is just
another edit which can be subject to parallel development and merging with
conflict resolution. The tree is dynamically reshaped as you perform updates.

- supports symbolic links, execute permissions, and user-defined
properties on files.

- has branches with automatic tracking of how much has been merged from one
branch to another (via specially formatted tags). Changes can be easily
merged from branches where the files have different names and tree structure.

- supports corner cases such as one user deleting a file while another making a
commit. Files can be deleted (unlinked from the file tree) but not really gone.
Unlinked files can be recovered into a "lost+found" directory with a command.

- supports a subtree checkout of a larger project. (All the objects are there,
but only a subtree is shown).

- has a snapshot-importing command which looks at file contents and
automatically identifies renamed files and symbolic links, and changing
execute permissions.

- allows for Meta-CVS checkouts to be made in subdirectories of existing
Meta-CVS sandboxes (there is no CVS/ directory in every subdirectory;
only the top-level of the sandbox has a MCVS/ directory.)
A special command line option allows you to "scope out" to a higher
Meta-CVS sandbox to execute the command on that sandbox instead of
the nested one.

- has tracking for file types. For instance, newly added files can
automatically be made binary because they have a certain suffix.

- has an add command which can recursively add an entire tree to version
control, identify any new file suffixes occuring in the tree, and let
you edit their CVS keyword disposition.

Loading...