How can I list files CVS without an initial checkout?
In subversion I can simply do “svn ls http://svn.svn.com” in CVS how can I do this?
For example I’ve got this CVS connection:
pserver:anonymous@evocms.cvs.sourceforge.net:/cvsroot/evocms
How can I list all files in it?
UPDATE:
I’m doing this:
c:\>set CVSROOT=pserver:anonymous@evocms.cvs.sourceforge.net:/cvsroot/evocms
c:\>cvs -list ---> doesn't work, prints out the help screen
If it’s a one-off operation you don’t need to set the
CVSROOTenvironment variable. Just use the-dargument for ad-hoc repository specification.If your version of CVS/CVSNT is not too old (to be exact you’d need either CVS 1.12.8 or higher or CVSNT) then, as others have said, after having logged in
should work just fine.
If your version of CVS/CVSNT does not support the
lscommand then you can trywhich will only dump the list of predefined modules.
If your version of CVS/CVSNT is old enough you might get lucky with the following hack (does not work with more recent versions of CVSNT unless compatibility mode has been enabled on the server):
First check out the root of the repository to some temp location , so we have the necessary metadata:
Then simulate an update (with directories) of that folder:
This will emit (almost) the same output as an actual checkout without actually getting the files from the server.
If you’re on Windows and using a fairly recent version of CVSNT as the client then
cvs lswill actually automatically fall back to this mechanism when it detects a server that does not supportlsitself.Oh yes, and AFAICT there is no such thing as
cvs -list. It’s not even valid CVS command line syntax:-listwould have to be a global argument rather than a command as it follows directly after thecvsand there is no actual command specified. But then again, all multi-letter arguments (such as--help) would have to start with a double dash, e.g.cvs --version. Were you all maybe thinking ofcvs listwhich would be a mere alias forcvs ls?