我在 bash shell 中运行 CVS。
我只是想看看哪些模块可供结帐。
我已经研究了一段时间,唯一想到的就是:
cvs checkout -c
执行后什么都没显示。现在我知道可能只是没有模块需要签出,但目前这对我来说更像是一种猜测,而猜测很少会有好结果。
更新:
我正在运行 1.11.23 版本
显然这个版本不支持cvs ls
Cheers。
答案1
以下 hackery 应该适用于 1.11.* 版的 cvs 客户端和服务器。我想它也能适用于其他版本,但这些是我本地测试的版本。
mkdir -p dummy/CVS
cd dummy
echo . > CVS/Repository
touch CVS/Entries
cvs -d$CVSROOT -n co . | awk '{print $5}'
要将此应用于 cvs 层次结构中的任意嵌套目录,匹配的本地目录也必须存在。要查找$CVSROOT/test_project/some_subdir
(例如) 下的可用目录,以下内容似乎有效。
cd dummy
mkdir -p test_project/some_subdir
cvs -d$CVSROOT -n co test_project/some_subdir
如果结果与预期不符,请放弃 awk。输出可能与我得到的结果略有不同。
如果您直接使用 cvs 有线协议,那么您可以做类似的事情,而不必使用目录黑客技术,但我认为我必须进行更多挖掘才能再次解决该问题。(我相信 Zend/Eclipse 在检测到较旧的 cvs 服务器版本时会这样做。)
答案2
如果你的 cvs 版本足够新,你应该可以执行
cvs ls
如果没有的话,您可能只需前往 cvs 服务器来检查 repo 本身。