Discussion:
cvs tags
J.V.
2011-11-16 19:49:28 UTC
Permalink
I have Googled this subject so much my head and fingers hurt.

How do I see tags in the cvs repo without installing other software
(like Eclipse).

I want to see tagged code and tagged branches from the command line.

I have to check out some code from a specific legacy version and want to
be able to do this myself / discover myself without having to walk
across the building and ask someone that worked on the project three
years ago.

I found a solution that would involve installing perl and running a perl
script. There has to be something built into cvs to do this and it is
such a common thing to do, but is not in any intro to cvs that I can find.

I need to see separately tags that correspond only to code that was
tagged, and full branches, whatever you call or refer to those as.

Even with other software / Eclipse plugins, I do not believe those show
me the difference in the tags that need to see.


J.V.
Larry Jones
2011-11-16 22:28:34 UTC
Permalink
Post by J.V.
How do I see tags in the cvs repo without installing other software
(like Eclipse).
In a working directory, you can use ``cvs status -v file'' to see the
tags in that file and they're labeled as to whether they're revision
tags or branch tags.

If you don't have the code checked out yet, you can use ``cvs rlog -h
path/file'' to get the info, but you have to figure out for yourself
which are revision tags and which are branch tags. The rule of thumb is
that branches have an odd number of non-zero components, revisions have
an even number.
--
Larry Jones

I wonder if I can grow fangs when my baby teeth fall out. -- Calvin
J.V.
2011-11-16 22:46:47 UTC
Permalink
I have no files checked out. So cannot do that.

Also I have no clue as to any file in the repo at the moment and no idea
what path may exist.

Any other ideas? Why is such a fundamental feature simply not there?

Am I the only person in the software development ecosphere that has ever
asked this question?
Post by Larry Jones
Post by J.V.
How do I see tags in the cvs repo without installing other software
(like Eclipse).
In a working directory, you can use ``cvs status -v file'' to see the
tags in that file and they're labeled as to whether they're revision
tags or branch tags.
If you don't have the code checked out yet, you can use ``cvs rlog -h
path/file'' to get the info, but you have to figure out for yourself
which are revision tags and which are branch tags. The rule of thumb is
that branches have an odd number of non-zero components, revisions have
an even number.
Larry Jones
2011-11-16 22:59:11 UTC
Permalink
Post by J.V.
Also I have no clue as to any file in the repo at the moment and no idea
what path may exist.
If you don't know what's in the repository, how do you know what you're
going to want to check out?

You seem to be thinking backwards of the way CVS works: In CVS, tags
identify branches and revisions within a file. That is, files contain
tags, tags don't contain files. It isn't meaningful to as what tags
exist in the repository since there isn't any central directory and it's
entirely possible for the same tag to exist in two separate files with
completely independent meanings. V1_0 in the foo source code doesn't
have anything whatsoever to do with V1_0 in the bar source code.
--
Larry Jones

Aw Mom, you act like I'm not even wearing a bungee cord! -- Calvin
Arthur Barrett
2011-11-16 23:42:08 UTC
Permalink
Hi J.V.
Post by Larry Jones
Post by J.V.
Also I have no clue as to any file in the repo at the
moment and no idea what path may exist.
cvs rls
Post by Larry Jones
You seem to be thinking backwards of the way CVS works: In CVS, tags
identify branches and revisions within a file. That is, files contain
tags, tags don't contain files.
Whilst technically true, I think this is not necessarily a helpful point
to make. Eg: SVN 'shows' files within tags, but CVS 'shows' tags within
files, but CVSNT 3.x (EVSCM) can serve both SVN and CVS clients - it
simply shows tags within files to CVS and files within tags to SVN - the
concepts are interchangable.

I personally think a lot of the success of SVN is that 'showing' files
within tags is more intuitive - but why some GUI designer didn't simply
display CVS tags like this years ago I've no idea - changing the server
is not necessary (but it makes it incredibly easier - which could be an
argument that GUI designers were lazy both with CVS and SVN by simply
displaying to users the server's view and not thinking about the human
computer interface that GUI's are really all about).

OK back to the question.

To find the tags/branches in a repository use:

cvs co -p CVSROOT/val-tags

Except it's not reliable, and may not be 'turned on'.

So to get the tags/branches in a repository using a CVS 1.x client use:

cvs rls
cvs rls path/to/any/file
cvs rlog -h path/to/any/file

Except that any one file can have different tags/branches to any other
file... But whilst technically true - in practice people tend to
tag/branch the entire repo (or at least the modules/top level
directory). For this reason Eclipse checks in a file to the root of
each 'project' which it then uses to display the tags/branches for the
whole project (even through in theory each file in the project could
have different tags/branches it's a) silly b) uncommon).

Regards,


Arthur Barrett
Larry Jones
2011-11-17 04:04:10 UTC
Permalink
Post by Arthur Barrett
cvs rls
cvs rls path/to/any/file
Except that rls only exists in 1.12, not 1.11.
--
Larry Jones

You don't get to be Mom if you can't fix everything just right. -- Calvin
Arthur Barrett
2011-11-17 06:55:53 UTC
Permalink
Larry,
Post by Larry Jones
Post by Arthur Barrett
cvs rls
cvs rls path/to/any/file
Except that rls only exists in 1.12, not 1.11.
If you are using CVSNT client 'rls' works with all CVS servers.

The original post did mention "would have to install perl" so I assumed
they are running Windows and therefore most likely CVSNT (since Mac and
Linux come pre-installed with perl...).

Regards,


Arthur

Loading...