我有一个CVS存储库位于远程位置,CVS可以通过这些环境变量访问:
export CVSROOT=:ext:xyz@abc.com:/home/xyz/cvsroot
export CVS_RSH=ssh
export CVS_SERVER=cvs
最近我添加了另一台具有不同位置和不同存储库的服务器。我尝试通过
添加位置export CVSROOT=$CVSROOT:ext:xyz@fgh.com:/cvs/cvsroot
但是,我无法执行结帐和更新等操作,并出现以下错误:
Cannot access /home/xyz/cvsroot:xyz@fgh.com:/cvs/cvsroot
No such file or directory
我做错了什么?
答案 0 :(得分:3)
当您在CVS存储库中时,任何cvs操作都将从当前目录的CVS/Root
文件中获取其CVSROOT信息,而不管有哪些CVSROOT
环境变量。因此,您唯一的问题是如何从不同的存储库中初步结帐。
当你输入export CVSROOT=$CVSROOT:ext:xyz@fgh.com:/cvs/cvsroot
时,说“将CVSROOT环境变量更改为旧变量,并将':ext:xyz@fgh.com:/ cvs / cvsroot'附加到末尾,如果它是。那可能不是你想要什么。你需要从右侧拿出$CVSROOT
。
作为可行的工作流程,您可以
cvs -d <newcvsroot> co <reponame>
以指定每个CVSROOT cvs co
(您可能还需要unset CVS_RSH
,我不知道),或export CVSROOT=<newcvsroot>; unset CVS_RSH; cvs co <reponame>
。如果您经常从多个存储库中检出,您可能希望设置这样的环境变量,然后您可以轻松地从每个仓库中检出。 (必要时添加回购。)
# in your .bashrc or someting
export REPO1ROOT=:ext:xyz@fgh.com:/cvs/cvsroot
export REPO2ROOT=:ext:xyz@abc.com:/home/xyz/cvsroot
export CVSROOT=$REPO1ROOT # default
# when you use the command line
cvs co repo1
cvs -d $REPO2ROOT co repo2