O hackery a seguir deve funcionar com 1.11. * versões de cliente e servidor do cvs. Eu imagino que funcionará com os outros, mas essas são as versões que eu tenho localmente para testar.
mkdir -p dummy/CVS
cd dummy
echo . > CVS/Repository
touch CVS/Entries
cvs -d$CVSROOT -n co . | awk '{print $5}'
Para aplicar isso a diretórios aninhados arbitrariamente na hierarquia cvs, os diretórios locais correspondentes também devem existir. Para encontrar os diretórios disponíveis em $CVSROOT/test_project/some_subdir
(por exemplo), o seguinte parece funcionar.
cd dummy
mkdir -p test_project/some_subdir
cvs -d$CVSROOT -n co test_project/some_subdir
Solte o awk se isso não mostrar o que você espera. A saída pode ser um pouco diferente do que eu consegui.
Se você está falando diretamente o protocolo cvs wire, você pode fazer uma coisa parecida sem o hackery do diretório que eu acredito, mas eu teria que cavar mais um monte para resolver isso novamente. (Acredito que o Zend / Eclipse faz isso quando detecta uma versão mais antiga do servidor cvs.)