Greg A. Woods wrote :
|| [ On Monday, February 14, 2000 at 10:32:58 (-0500), John Macdonald wrote: ]
|| > Subject: Re: removing the need for "cvs add file" to contact the server....
|| >
|| > RCS manges only files and not directories.
|| 
|| Indeed.
|| 
|| > CVS manages directory trees containing files.  While the files are
|| > version controlled and not the names of the files or their
|| > positioning within the directories, the existance of the directories
|| > is not just ignored.
|| 
|| There's a very subtle but very critical difference between what you've
|| said and what CVS really does.
|| 
|| CVS manages groups of files contained within one or more sub-directories
|| by using RCS to record changes to those files.  CVS is just a tool to
|| iterate many similar RCS operations over a group of files in such a way
|| as to facilitate the concurrent editing of changes to those files by
|| users sharing a copy of the RCS files in a central repository.  It
|| doesn't do anything more than that, nor should it (and it does what it
|| does very well too!).

Oh?  When is the last time that you had to create a directory in the
repository so that it would accept a file in that directory that you
had created in the work area?  When is the last time you had to
create a directory in your work area to accept files when you did a
checkout?  CVS does manage directories during its operations.

|| > Incomplete support is not the same as totally unsupported.
|| 
|| Directories are totally "unsupported" by CVS in the version-control
|| sense.  There's nothing "incomplete" about what CVS does with
|| directories (unless you count the current hack of "cvs add").

There's nothing unsupported about the way that CVS creates
directories in the repository or work area as needed to duplicate the
structure being copied.

If directories were totally unsupported, the -P option would be
totally meaningless because CVS would never be creating directories
in the first place so they would never end up being empty.

|| > The repository uses directories to organize the version controlled
|| > files and that directory structure is mapped to and from the work
|| > area under the management of CVS operations.
|| 
|| Well, no, not exactly.  CVS simply mirrors the directory structure it
|| finds in one place into the other, creating (and sometimes removing)
|| directories as needed.  There's not really any "under the management of
|| CVS operations" in there.  CVS "operations" only affect the files being
|| managed.  The directories just exist to give structure to the modules.
|| CVS simply wanders around within a defined set of directories operating
|| on the files within.

checkout duplicates the repository directory structure into the work
area (in fact, with -P it is the directory structure that matches the
specific version you checked out that is duplicated).

checkin duplicates any additions to the directory structure made in
the work area into the repository.

There is a lot of support there for directories.  The only thing
lacking is support for renaming directories, and that is also lacking
for files.  In both cases, you can work around the lack with a delete
and an add.

-- 
Anyone who can't laugh at himself is not    | John Macdonald
taking life seriously enough -- Larry Wall  |   [EMAIL PROTECTED]

Reply via email to