3

I'm running CVS in a bash shell.

I'm just trying to see which modules are available for checkout.

I've been researching for a while and the only thing I've come up with is:

cvs checkout -c

which executes but shows nothing. Now I know its possible that there may just be no modules to checkout, but thats more of a guess to me at this point, and settling for guesses rarely works out well.

UPDATE:

Im running version 1.11.23

apparently this version doesn't support cvs ls Cheers.

Rooster
  • 525

2 Answers2

3

if your cvs version is new enough, you should be able to do a

cvs ls

if not, you can probably just go to the cvs server to examine the repo itself.

johnshen64
  • 6,035
1

The following hackery should work with 1.11.* client and server versions of cvs. I imagine it will work with others but those are the versions I have locally to test with.

mkdir -p dummy/CVS
cd dummy
echo . > CVS/Repository
touch CVS/Entries
cvs -d$CVSROOT -n co . | awk '{print $5}'

To apply this to arbitrarily nested directories in the cvs hierarchy the matching local directories must also exist. To find the directories available under $CVSROOT/test_project/some_subdir (for example) the following appears to work.

cd dummy
mkdir -p test_project/some_subdir
cvs -d$CVSROOT -n co test_project/some_subdir

Drop the awk if that doesn't show what you expect. The output might differ slightly from what I got.

If you are speaking the cvs wire protocol directly you can do a similar thing without the directory hackery I believe but I'd have to dig a bunch more to sort that out again. (I believe Zend/Eclipse does that when it detects an older cvs server version.)

Etan Reisner
  • 1,383