emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: vc-do-command: doc/code inconsistency


From: Eli Zaretskii
Subject: Re: vc-do-command: doc/code inconsistency
Date: Sat, 11 Nov 2000 21:52:24 +0200

> Date: Sat, 11 Nov 2000 09:04:07 -0500 (EST)
> From: "Robert J. Chassell" <address@hidden>
> 
>    ... CVS doesn't treat file names as file names, it treats them as
>    module names.  ... one of the major reasons for many
>    counter-intuitive aspects of CVS's behavior ...
> 
> Very important point.  I am glad you pointed this out and would like
> to see more comments.

I'm the last person who should be posting comments about CVS, because
this module vs file dichotomy, and the misfeatures it begets, simply
piss me off (pardon my French).

For example, let's suppose you have a CVS repository which contains
many files, among them a file called foo/bar/baz.c.  Let's further
suppose that initially you don't have any of the repository's files
checked out on your disk.  Finally, let's suppose that, for some crazy
reason, you want only the single file foo/bar/baz.c from that project,
and nothing else.  (This happens when the project is very large and you
are only interested in a small portion of it.)

Now try the following commands.  But wait! before actually typing
them, think hard and try to guess which ones of them will actually
cause CVS to check out the single file foo/bar/baz.c to your local
disk:

   cvs co foo/bar/baz.c
   cvs up foo/bar/baz.c
   mkdir foo; cd foo; cvs co bar/baz.c
   mkdir foo; cd foo; cvs up bar/baz.c
   mkdir foo; mkdir foo/bar; cd foo/bar; cvs co baz.c
   mkdir foo; mkdir foo/bar; cd foo/bar; cvs up baz.c

Do you think you know the answer?  Now actually try these commands
with some repository, for example the Emacs one (but be sure to do it
outside the directory where you keep your local copy of the Emacs
CVS).

Did the commands do what you thought they will?  Did the error
messages in those cases that failed make any sense?

Now try those same commands with another repository, like the GDB or
GCC source tree, and watch in horror how the results are different
from repository to repository.  Understanding why does this happen is
another challenge.

It would be interesting to see how many people here think that what
CVS does is reasonable.  FWIW, I couldn't for the world convince CVS
maintainers that it simply doesn't make any sense.  They told me I
didn't understand the philosophy of CVS...



reply via email to

[Prev in Thread] Current Thread [Next in Thread]