Re: [harinath cs umn edu: Re: Gnome-libs and libart_lgpl]
- From: Raja R Harinath <harinath cs umn edu>
- To: Michael Harnois <mharnois willinet net>
- Cc: gnome-list gnome org
- Subject: Re: [harinath@cs.umn.edu: Re: Gnome-libs and libart_lgpl]
- Date: 23 Nov 1998 16:25:36 -0600
Michael Harnois <mharnois@willinet.net> writes:
> Miguel de Icaza <miguel@nuclecu.unam.mx> writes:
> > This mail is important, it is worth repeating it one more time :-)
>
> Since, according to the cvs documentation, checkout and update -d
> should be equivalent on a tree after it has been checked out once,
> what's wrong with the gnome anoncvs setup that it doesn't work
> properly?
1. I never said
"Don't use `cvs update'"
I said
"Don't use `cvs update' to do the initial checkout"
As you say, after a tree has been checked out once, checkout and
update -d are virtually equivalent.
2. There's one case when `checkout' and `update -d' are different after
a tree has been checked out. That is when a virtual subdir has been
added via the `modules' mechanism. `checkout' knows how to handle
it, `update -d' doesn't. This could be construed as a bug in CVS.
However, the documentation for the `modules' mechanism talks only
about checkout, not about update. There's nothing wrong in how the
GNOME CVS Repository is set up. It is just that people have slightly
more expectations of orthogonality than CVS really has.
3. Let me explain why I said
"Don't use `cvs update' to do the initial checkout"
Before I do that, I'll clarify how `cvs update' to do initial
checkout even works.
When you first checkout, say, `gnome-lib' into a newly created
/foo/bar
$ cd /foo
$ mkdir bar
$ cd bar
$ cvs -d :pserver:... co gnome-libs
With CVS 1.10, the directory tree looks like
/foo/bar/
CVS/
Root
Repository
...
gnome-libs/
...
Note especially /foo/bar/CVS. This makes /foo/bar a potential
CVS working dir. This is a difference from CVS 1.9, which does not
create the CVS/ dir at the _same_level_of_the_checked_out_module_.
What is significant about a "CVS working dir"?
You can run "cvs update" in it.
Now, if you want to get `gnome-core' in /foo/bar/. One way, the
right way, is to
$ cd /foo/bar
$ cvs -d :pserver:... co gnome-core
However, people have been taking advantage of /foo/bar being a CVS
working dir and getting away with
$ cd /foo/bar
$ cvs update -d gnome-core
This is what I strongly suggest not to do.
One reason is related to the `modules' mechanism, which is used quite
extensively in the GNOME CVS Repository.
Another reason is that newer pre-releases of CVS revert to the v1.9
behaviour and don't create the CVS/ directory in /foo/bar/, thus
making the above trick not to work (unless, you had originally used
CVS 1.10 in that directory, and then changed to a newer version). I
expect the next CVS to maintain its behaviour of not creating the
CVS/ directory at the same level of the checked out module.
I hope this finally settles the issue.
- Hari
--
Raja R Harinath ------------------------------ harinath@cs.umn.edu
"When all else fails, read the instructions." -- Cahn's Axiom
"Our policy is, when in doubt, do the right thing." -- Roy L Ash
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]