Greg Woods wrote:
[smc] [...]
> >
> > My view of it was that currently HEAD appears to mean the head
> > of the trunk, with the one exception being that "cvs diff" treats it
> > differently. So my reasoning was to "fix" that one excetption, is
> all.
>
> The question is how many times have you ever used "HEAD", and how many
> times with "cvs diff" and how many times with other commands?
[smc] Well, a bug is a bug, whether you ever trip over it or not,
'specially
when the bug is easy to fix.
> I mostly use it with "cvs diff" and I've been very annoyed when it
> doesn't work the same way with "cvs log",
>
[smc] Ok, then I have just the fix for you, I've posted it before.
Either interpretation of HEAD is pretty simple to code, _if I'm
right_.
Just a matter of calling rcs_head() or rcs_branch_head() for the
"HEAD"
specific code. Whatever way it's done, it ought to be consistent,
the
smallest change to make it consistent is to change "cvs diff".
Changing
all the other usages of HEAD to match how "cvs diff" does it isn't
hard
either though. But, having it inconsistent is a bug, and even if I
don't ever
use HEAD I still want the bug fixed.
If somebody is interested, I can try to make a version of my patch
that
makes HEAD work as it does for "cvs diff" in all the other cases. I
don't
think it's very hard. (Hardest part will probably be fixing
sanity.sh...)
[...]
> Placing special emphasis on the meaning of the trunk makes lots and lots
> of sense in SCCS, less sense in RCS, and much less sense in CVS
[smc] Yes, you're right. but to make the user interface,
more...orthogonal,
if that's the right word, it would be nice if the trunk had a name
that behaved
exactly as a branch tag does, but referred to the trunk. Well, of
course this
is not what HEAD is, even if it were consistent, since it's not a
branch tag
and you can't commit to it. What I'm trying to say is if you had
a name for
the trunk which behaved just like a branch tag, but meant the trunk,
then
this would lessen the difference between the trunk and branches, and
place
less emphasis on the meaning of the trunk... The trunk would then be
less special
in that there would be one less difference between the trunk and
other
branches, since the trunk would then have a branch-tag name, just
like
all other branches.
You might achieve this _effect_, by a method I've mentioned before,
by having a branch you called TRUNK, and just ignoring the real
trunk, but,
then you run (eventually) into the problem that on branches, it will
take
more and more time to compute the most recent revisions since the
deltas
are applied forwards in time, instead of backwareds in time as they
are
on the trunk...(if that makes sense..) Merging back to the real
trunk now
and then could alleviate that though, I suppose, but it's extra work
that
shouldn't be necessary. And I don't know how this would fit in with
vendor branches, since I don't use them and haven't studied how they
work.
But I'm rather off topic, as I don't really know how to implement
this,
whereas I think I do know how to make HEAD consistent at least.
[...]
> > > Having a symbolic name for "TRUNK"
> > > isn't necessarily a bad thing, but it does crowd the tag namespace
> > > unnecessarily. If you really want to use it then why not just
> manually
> > > add a real "TRUNK" tag and be done with it?
> >
> > [smc] How do you do that?
[...]
> You don't really want it to be a CVS
> magic branch tag but rather just the real RCS trunk branch identifier.
[smc] Oh...I thought you meant you had some way to make a name for
the trunk as I described above. Tagging the trunk, while useful,
isn't as
ideal, to my mind, as a real branch-tag name that means the trunk.